Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS205 Software Engineering_Overview Specifications: The Ariane 6 must be able to deliver both satellite hardware and crew into geostationary orbit. (Ariane.

Similar presentations


Presentation on theme: "CS205 Software Engineering_Overview Specifications: The Ariane 6 must be able to deliver both satellite hardware and crew into geostationary orbit. (Ariane."— Presentation transcript:

1 CS205 Software Engineering_Overview Specifications: The Ariane 6 must be able to deliver both satellite hardware and crew into geostationary orbit. (Ariane 5 can only deliver satellites) Maximize software re-use from Ariane 5. Exercise: 1. Outline a strategy for accomplishing this. 2. Outline the software, hardware and social components of a new rocket series. 3. How would these components interact?

2 CS205 Software EngineeringOverview From BBC News Online “Lockheed to build NASA 'Moonship'” Thursday, 31 August 2006 http://news.bbc.co.uk/2/hi/science /nature/5304086.stm

3 CS205 Software Engineering_Overview System engineering vs. software engineering System engineering includes software engineering as a component Both create socio-technical systems… …but system engineers can create/modify the hardware and social aspects In software engineering, hardware is assumed to be fixed. Systems engineering is more abstract than software engineering - not concerned so much with component details

4 CS205 Software Engineering_Overview System engineering vs. software engineering (0. Intuition (perceiving a problem/need/niche) Innovation (one good idea leads to another) Specification: define the software/constraints Development: design and programming Validation: Component/system testing Evolution: Adapt to changing user needs … The software engineering process Improvements to existing system Creation of new systems

5 CS205 Software Engineering_Overview System engineering vs. software engineering The system engineering process Requirements definition System decommissioning System design System evolution Sub-system development System installation System integration System engineering process composed of more basic activities Linear process, rather than cyclic. Q: Why? Intuition/ innovation Q: Given the Ariane 5 system, for each stage, give a detailed example. “A5 will never exceed a velocity of 500 meters per second.”

6 CS205 Software EngineeringOverview Programming Exercise: “Programming with Virtual Blocks” http://www.cs.uvm.edu/~jbongard/Blocks_1/ Will form the base code for the warm-up project Warm-up project will be assigned Tuesday, September 4.

7 CS205 Software Engineering_Overview Example emergent software system properties Volume (Memory, hard disk space; how does it scale with use (saved data)) Reliability (Depends on hardware, software, operators) Security (vulnerable to attack? Who has access?) Speed (Depends on underlying hardware components) Robustness: (Reacts well to unanticipated use; related to reliability) Q: What else? Which are desirable? Which should be minimized?

8 CS205 Software Engineering_Overview Emergent system properties Non-functional emergent properties General properties of the system Exist regardless of how well the system is functioning - Tolerable ranges are usually given, or assumed (speed, reliability) Functional emergent properties - Desirable property that the components are trying to realize - Only appear when the system is working well - Are usually specified explicitly - May only appear in certain situations - More specific than non-functional properties (Sorts all integer lists vs. reliability)

9 CS205 Software Engineering_Overview Software Process: Set of activities that produce a software product. Innovation/Intuition Specification Development Verification Evolution Processes may be embedded within processes: Specification: Feasibility study Requirements elicitation and analysis Requirements specification Requirements validation (realism, consistency and completeness) Software Process Models: Views on that process How that process is structured (linear versus iterative) Models may be embedded in models (one activity within an iterative process may be executed linearly, and vice versa)

10 CS205 Software Engineering_Overview Three Main Process Models: Linear Summary:One-way progress from client needs to finished product Focus:Concrete milestones, freezing phases Examples:The waterfall model (adapted from systems engineering) Pros: Cons: Iterative Summary:Bidirectional movement in the development process Focus:Ability to change, rapid delivery, user involvement Examples:Evolutionary development Incremental delivery The spiral model Pros: Cons: Component-Based Software Engineering (CBSE) Summary:Composition of reusable, standardized components Focus:Reuse, integration, interfaces Pros: Cons:

11 CS205 Software Engineering_Overview Linear vs. Iterative as they relate to change Linear models produce clean code, which is easier to modify later (process resistant to change, product amenable to change) Iterative models allow change during development, but produce “rotten” code (process amenable to change, product resistant to change) The “smells” of “rotten” code: No clear overall structure Little/no documentation Q: What else?

12 CS205 Software Engineering_Overview The waterfall method Requirements definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance Each phase produces a document – a deliverable – that triggers the start of the next phase. Q: How do these activities map to basic software engineering activities? Q: What could the deliverables be? Royce, W. W. (1970). Managing the development of large software systems: concepts and techniques. Proc. IEEE WESTCON.

13 CS205 Software Engineering_Overview The waterfall method Imagine you are a team leader in a production house that uses the waterfall method. To which phase would you focus most time and effort if you were developing… Q: Software to indicate whether an X-ray shows a tumor or not? Q: Software composed of commercial off-the-shelf programs? Q: A new operating system? Q: Software for a client known to change their minds often? No one right way to do things. …but for really indecisive clients… (see next slide)

14 Intermediate versions CS205 Software Engineering_Overview Evolutionary development Specification, development and validation are carried out in parallel. Expose the client to many versions, and incorporate their feedback. Pro: Con: Outline Description Specification Development Validation Initial version Final version Intermediate versions

15 CS205 Software Engineering_Overview Evolutionary development Two sub-classes: Exploratory development Start w/ components the client is sure about. Develop other components as you go. Throwaway prototyping Final product is a prototype that is used to create requirements… …then thrown away. Preamble to more structured approaches Q: Where might you use exploratory development? Q: Where might you use throwaway prototyping?

16 CS205 Software Engineering_Overview Incremental delivery Not as structured as waterfall method. More structured than evolutionary development. Focus on priorities: identify what functionality the client needs first. (What system functionalities supports this user functionality?) Pro: Con: Define outline requirements Assign requirements to increments Design system architecture Integrate increment Develop system increment Validate increment Validate system Final system System incomplete

17 CS205 Software Engineering_Overview Incremental delivery Imagine you are a team leader in a production house using incremental delivery. What would you develop first in… Q: Software to indicate whether an X-ray shows a tumor or not? Q: An online travel booking system? Q: A new operating system? Q: Real-time, physical simulation software Q: Product for an international market?


Download ppt "CS205 Software Engineering_Overview Specifications: The Ariane 6 must be able to deliver both satellite hardware and crew into geostationary orbit. (Ariane."

Similar presentations


Ads by Google