This preview shows pages 1–3. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: 1 CSE 335: Software Design Dr. Alex X. Liu [email protected] http://www.cse.msu.edu/~alexliu 2243 Engineering Building Department of Computer Science and Engineering Michigan State University TA Email Greg Singer: [email protected] ─ Office hours: ─ Wednesday 4:30-5:30 PM, ─ Thursday 1:30-2:30 PM, ─ Friday 1:30-2:30 PM , ─ or by appointment. ─ Location: 3203 Engineering (Bone Lab). 2 Ke Shen: [email protected] ─ Monday 10-11 AM ─ Tuesday 12-1 PM Science vs. Engineering Science is on discovery Engineering is on design: ─ The application of scientific principles and methods to the construction of useful structures & machines 3 Programming vs. Engineering Programming ─ Small project ─ You ─ Build what you want ─ One product ─ Few sequential changes ─ Short-lived ─ Cheap ─ Small consequences 4 Engineering ─ Huge project ─ Teams ─ Build what they want ─ Family of products ─ Many Parallel changes ─ Long-lived ─ Costly ─ Large Consequences Software Engineering Software engineering is a special type of engineering ─ Software is extremely complex ─ Software construction is human-intensive ─ Software is intangible and invisible ─ Software is constantly subject to pressures for change ─ Software needs to conform to arbitrary interfaces and contexts 5 ● E.g., business rules and processes vary dramatically from business to business ● E.g., existing databases of information. Software Development Lifecycle: Waterfall Model 6 2 Requirements Problem Definition → Requirements Specification ─ determine exactly what the customer and user want ─ develop a contract with the customer ─ specifies what the software product is suppose to do Difficulties li t k f d 7 ─ client asks for wrong product ─ client is computer/software illiterate ─ specifications are ambiguous, inconsistent, incomplete Architecture/Design Requirements Specification → Architecture/Design ─ architecture: decompose software into modules with interfaces ─ design: develop module specifications (algorithms, data types) ─ maintain a record of design decisions and traceability ─ specifies how the software product is to do its tasks Difficulties ─ miscommunication between module designers ─ design may be inconsistent, incomplete, ambiguous 8 Architecture vs. Design ─ Architecture is concerned with the selection of architectural elements, their interactions, and the constraints on those elements and their interactions necessary to provide a framework in which to satisfy the requirements and serve as a basis for the design....
View Full Document