Presentation is loading. Please wait.

Presentation is loading. Please wait.

Review 20 March. Announcements EA here today Let me know if you are looking for a job or summer internship John Smith Current Events: John BackusJohn.

Similar presentations


Presentation on theme: "Review 20 March. Announcements EA here today Let me know if you are looking for a job or summer internship John Smith Current Events: John BackusJohn."— Presentation transcript:

1 Review 20 March

2 Announcements EA here today Let me know if you are looking for a job or summer internship John Smith Current Events: John BackusJohn Backus

3 (Software) Engineering Turning ideas into reality Creating something useful from other things using science and math

4 The right software, delivered defect free, on time and on cost, every time. Carnegie Mellon Software Engineering Institute Software Engineering Objective

5 The 4 P’s of Software Engineering Product: what is produced People: those doing it Project: the doing of it Process: the manner in which it is done

6 Project: the doing of it Quality Risk Management

7 Project: the doing of it Quality Risk Management

8 Expectations of Software Engineering (Watts Humphrey)Watts Humphrey 1.Predetermine quantitative quality goals 2.Accumulate data for use in later projects 3.Keep all work visible 4.Design, program and test only against requirements 5.Measure and achieve quality goals

9 Quality Management Principles Customer focus Leadership Involvement of people Process approach System approach to management Continual improvement Factual approach to decision making http://www.iso.ch/iso/en/iso9000-14000/iso9000/qmp.html

10 Project: the doing of it Quality Risk Management

11 Risks 80% of software projects fail Two types of risk Avoidable Unavoidable

12 Should we eliminate risk? Take calculated risks. That is quite different from being rash. (Patton) Great deeds are usually wrought at great risks. (Herodotus) Great deeds are usually wrought at great risks. (Nehru) No risk => no challenge

13 Risk Management 1. Identification 2. Mitigation plan 3. Prioritization 4. Retirement

14 Sources of Risk 1. Top management commitment 2. User commitment 3. Misunderstood requirements 4. Inadequate user involvement 5. Mismanaged user expectations 6. Scope creep 7. Lack of knowledge or skill Keil et al, “A Framework for Identifying Software Project Risks,” CACM 41:11, November 1998.

15 Technical Risks New features New technology Developer learning curve Changes that may affect old code Dependencies Complexity Bug history Late changes Rushed work Tired programmers Slipped in “pet” features Unbudgeted items

16 Project: the doing of it Quality Risk Management

17 What can be controlled? Cost Number of people Hours worked Hardware and software used Capability Function that you ship Quality Procedures that increase cost and quality Testing Delivery Dates

18 Project Management Tasks Management process Define and drive Schedule Staffing plan Risk Management Development process Document identification

19 Management Process: Organization Needed to control communications cost Channel of communications costs about 2 hours per week Optimal number 3-7 Organization structures Hierarchical Peer Requires leader of team or aspects Subteam Requires gatekeeper Matrix

20 Schedule: Scheduling Steps and Tools Put together minimal solution Primary requirements Start with external commitments Product descriptions Customer milestones Introduce internal milestones Work breakdown structure Product flow PERT chart, Gantt chart Focus on the risks Add next level of features where possible Secondary requirements

21 Risk Management: Reviews and Inspections Why? Developer can’t correct unseen errors More eyes to catch problems Earlier is cheaper Integration fix typically 3-10 times the cost at design Review often by someone at a higher level completed work Inspection (formalized process; Fagin 76) peer review work in progress

22 Process: the manner in which it is done Differ by how often you do the steps Points on the spectrum Differences in overhead Three fundamental models Waterfall Spiral Iterative Two widely used models Rational Unified Process (a.k.a. Unified Software Development Process) Extreme Programming

23 Rational Unified Process Matrix ElaborationInceptionConstructionTransition Requirements Analysis Design Implementation Test Phases Workflows

24 Agile Methodologies Keep only those rules and processes that help Antidote to bureaucracy Key characteristics Adaptive People-oriented

25 Extreme Programming Complete development process First code drop is 2-3 weeks after start Customer a part of the development team Iterative development to the max Derive requirements with customer through hands-on experimentation

26 XP Value System Communication Focus on people, not documentation Simplicity Of process and code Feedback Mechanism to make useful progress Courage To trust in people

27 Extreme Programming Project http://www.extremeprogramming.org/

28 XP Bills of Rights Developer has a right to Clear requirements and priorities Determine how long a requirement will take to implement Revise estimates Always produce quality code Customer has a right to An overall plan See progress in a running system Change requirements and priorities Be informed of changes to schedule and have input as to how to adapt Cancel in the middle and still have something to show for the investment

29 Egoless Programming Weinberg 1971, The Psychology of Computer Programming During the “cowboy” era Observed that programmers needed to be team players Accept inspections and reviews Open to corrections and critiques Ten Commandments (Lamont Adams) Ten Commandments But pride of ownership is critical to quality

30 Software Engineering: Elaborated Steps Concept Requirements Architecture Design Implementation Integration System test Maintenance

31 Software Engineering: Elaborated Steps Concept Requirements Architecture Design Implementation Integration System test Maintenance

32 Requirements Analysis To build something, we first must understand what it is we’re building Establish expectations Understandable by both the client and the developer

33 Sources of requirements People Broad range of stakeholders Conflicting requirements Wants and needs Helping the customer articulate the requirements: use cases Hardware constraints Laws of physics and nature Social responsibility

34 Use Cases A statement of the functionality users expect and need, organized by functional units  Functional units are any natural division  Relationships between user roles and use cases  User activities, decisions, and objects involved

35 Requirement requirements A requirement must be written expressed precisely expressed as what, not how prioritized testable The set of requirements must be… consistent complete

36 Types of Requirements Functional: services that the application must provide Performance: speed, capacity, memory Reliability and availability: failure rates Error handling: how to handle Interface: user and program Constraints: systems or tolerances (Inverse requirements: what it won’t do )

37 Software Engineering: Elaborated Steps Concept Requirements Architecture Design Implementation Integration System test Maintenance

38 What is an Architecture? Complete and detailed specification of the user interface (Brooks, The Mythical Man-Month) Architecture: what happens; implementation: how it is made to happen (Blauuw)

39 The UI Iceberg Visuals InteractionTechniques Object Model Feel 30% Look 10% The things you use 60%  Toolkits and style guides help with look and feel, the tip of the usability iceberg.  Real usability gains come from system and application objects perceived by users.

40 Fundamental Concepts What the user needs to do The order that he does it Is it natural? How much does he have to remember?

41 Good Screen Design Consistency: use of pull-downs vs. entry Starting in the upper left corner: first thing to fill in Simple navigation Grouping and alignment Keep related issues together Captions for clarity

42 Software Engineering: Elaborated Steps Concept Requirements Architecture Design Implementation Integration System test Maintenance

43 Modeling Based on abstraction Looking only at relevant information Hiding details Create multiple views As orthogonal as possible Each view has information that is unique Each view has information that appears in other views Common information is consistent

44 Modeling Languages and Processes Language: syntax, usually graphical, used to express design Process: steps to take to create a design Many processes, not a lot of agreement General consensus has built around UML as a language

45 “Software Architecture” Architecture is the external view Software “external view” is highest level design We’ll refer to it as “system design” Not consistent in industry or literature

46 System Design Goals Correctness Extensibility: adding new features Tradeoff of generality and time How might it be extended? Changeability: requirements changes Simplicity: ease of understanding and implementing Efficiency: speed and size

47 System Design Characteristics Cohesion degree to which communication takes place within the module Coupling degree to which communication takes place between modules Min-max problem: minimize coupling while maximizing cohesion

48 System Design Patterns Model-View-Controller Data flow systems Pipes and filters Batch sequential Independent components Client-server Parallel communicating processes Event systems Virtual machines Interpreters Rule-based systems Repositories Databases Hypertext systems Layered architectures

49 Detailed Design Build on well understood patterns from the system design Goal is to prepare the project for implementation Includes System design decomposition (modules, processes, data) Detailed module definitions Detailed data definitions Design decisions

50 Software Engineering: Elaborated Steps Concept Requirements Architecture Design Implementation Integration System test Maintenance

51 Implementation Items Start small Appropriate level of documentation Error handling

52 Tools Version Management Build Systems Integrated Development Environments

53 Using XML Design goals Separation of changeable decisions Need for multiple forms for the same data XML a standard implementation option, but not the only one Provides tools (may or may not be beneficial)

54 Software Engineering: Elaborated Steps Concept Requirements Architecture Design Implementation Integration System test Maintenance

55 Midterm Reminders Virtual in-class Posted on web at 12:25 “Postmarked” by 1:50 Open notes, books, computers


Download ppt "Review 20 March. Announcements EA here today Let me know if you are looking for a job or summer internship John Smith Current Events: John BackusJohn."

Similar presentations


Ads by Google