Скачать презентацию CS 205 Software Engineering_ Specifications The Ariane 6 Скачать презентацию CS 205 Software Engineering_ Specifications The Ariane 6

5bf783d4e815b122efdb4c1a6293cb24.ppt

  • Количество слайдов: 17

CS 205 Software Engineering_ Specifications: The Ariane 6 must be able to deliver both CS 205 Software Engineering_ 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? Overview

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

CS 205 Software Engineering_ System engineering vs. software engineering System engineering includes software engineering CS 205 Software Engineering_ 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 Overview

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

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

CS 205 Software Engineering Overview Programming Exercise: “Programming with Virtual Blocks” http: //www. cs. CS 205 Software Engineering Overview 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.

CS 205 Software Engineering_ Example emergent software system properties Volume (Memory, hard disk space; CS 205 Software Engineering_ 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? Overview

CS 205 Software Engineering_ Overview Emergent system properties Non-functional emergent properties General properties of CS 205 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)

CS 205 Software Engineering_ Software Process: Set of activities that produce a software product. CS 205 Software Engineering_ 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) Overview

CS 205 Software Engineering_ Three Main Process Models: Linear Summary: One-way progress from client CS 205 Software Engineering_ 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: Focus: Examples: Bidirectional movement in the development process Ability to change, rapid delivery, user involvement 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: Overview

CS 205 Software Engineering_ Linear vs. Iterative as they relate to change Linear models CS 205 Software Engineering_ 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? Overview

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

CS 205 Software Engineering_ Overview The waterfall method Imagine you are a team leader CS 205 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)

CS 205 Software Engineering_ Overview Evolutionary development Specification, development and validation are carried out CS 205 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: Specification Outline Description Initial version Development Intermediate versions Validation Final version

CS 205 Software Engineering_ Overview Evolutionary development Two sub-classes: Exploratory development Start w/ components CS 205 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?

CS 205 Software Engineering_ Overview Incremental delivery Not as structured as waterfall method. More CS 205 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 Develop system increment Assign requirements to increments Validate increment Integrate increment System incomplete Design system architecture Validate system Final system

CS 205 Software Engineering_ Overview Incremental delivery Imagine you are a team leader in CS 205 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?