INFO 637Lecture #61 Software Engineering Process II Designing with Teams INFO 637 Glenn Booker.

Slides:



Advertisements
Similar presentations
Object Oriented Analysis And Design-IT0207 iiI Semester
Advertisements

Testing Relational Database
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
May 2, May 2, 2015May 2, 2015May 2, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa, CA.
Chapter 10 Schedule Your Schedule. Copyright 2004 by Pearson Education, Inc. Identifying And Scheduling Tasks The schedule from the Software Development.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1 Disciplined Software Engineering Lecture #7 Software Engineering.
6/19/2007SE _06_19_Overview_Inspections.ppt1 Team Software Project (TSP) June 19, 2007 High Level Designs, Code Inspections & Measurement.
12 C H A P T E R Systems Investigation and Analysis and Analysis.
Fundamentals of Information Systems, Second Edition
06/12/2007SE _6_12_Design.ppt1 Design Phase Outputs: Completed & Inspected SDS & Integration Test Plan Completed & Inspected System Test Plan.
SE 555 Software Requirements & Specification Requirements Validation.
Software Testing and Quality Assurance
Development Processes and Product Planning
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 3: Basing Software Development on Reusable Technology.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
INFO 637Lecture #31 Software Engineering Process II Launching & Strategy INFO 637 Glenn Booker.
S/W Project Management
1 Software Testing (Part-II) Lecture Software Testing Software Testing is the process of finding the bugs in a software. It helps in Verifying and.
INFO 637Lecture #81 Software Engineering Process II Integration and System Testing INFO 637 Glenn Booker.
Computers Are Your Future Eleventh Edition Chapter 13: Systems Analysis & Design Copyright © 2011 Pearson Education, Inc. Publishing as Prentice Hall1.
CPIS 357 Software Quality & Testing
Applying the Inspection Process. What Software Artifacts Are Candidates for Inspection? Software Requirements Software Designs Code Test Plans.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
INFO 637Lecture #41 Software Engineering Process II Development Plan INFO 637 Glenn Booker.
Demystifying the Business Analysis Body of Knowledge Central Iowa IIBA Chapter December 7, 2005.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Team Skill 6: Building the Right System From Use Cases to Implementation (25)
CEN th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi Software Project Planning.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 7: Focusing on Users and Their Tasks.
1 5.1 Software Engineering Practice  Provide value to the user  KIS—keep it simple!  Maintain the product and project “vision”  What you produce,
1 Chapter 5 Software Engineering Practice. 2 What is “Practice”? Practice is a broad array of concepts, principles, methods, and tools that you must consider.
Coming up: Software Engineering: A Practitioner’s Approach, 6/e Chapter 5 Practice: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Disciplined Software Engineering Lecture #7 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department.
INFO 637Lecture #51 Software Engineering Process II Defining Requirements INFO 637 Glenn Booker.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
INFO 637Lecture #101 Software Engineering Process II Review INFO 637 Glenn Booker.
CS 350, slide set 5 M. Overstreet Old Dominion University Spring 2005.
From Quality Control to Quality Assurance…and Beyond Alan Page Microsoft.
Computers Are Your Future Tenth Edition Chapter 13: Systems Analysis & Design Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall1.
Software Engineering Saeed Akhtar The University of Lahore Lecture 6 Originally shared for: mashhoood.webs.com.
INFO 636 Software Engineering Process I Prof. Glenn Booker Week 8 – Reviews 1INFO636 Week 8.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
CS 4850: Senior Project Fall 2014 Object-Oriented Design.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 7 1 Design and Code Reviews - Overview What are design and code.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Fundamentals of Information Systems, Second Edition 1 Systems Development.
Reviews and Inspections. Types of Evaluations Formal Design Reviews conducted by senior personnel or outside experts uncover potential problems Inspections.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
Formal Methods.
Business Analysis. Business Analysis Concepts Enterprise Analysis ► Identify business opportunities ► Understand the business strategy ► Identify Business.
1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s Approach, 7/e Chapter 2.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
INFO 637Lecture #71 Software Engineering Process II Product Implementation INFO 637 Glenn Booker.
PRODUCT IMPLEMENTATION Chapter 8 Tawatchai Iempairote September 23, 2041.
Lecture 13.  Failure mode: when team understands requirements but is unable to meet them.  To ensure that you are building the right system Continually.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
Focus on design principles and on a process for doing design = To produce a precise, complete, high- quality foundation for product implementation.
Software Engineering Principles Practical Advice and Steps for Managing Your Project.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
More SQA Reviews and Inspections. Types of Evaluations  Verification Unit Test, Integration Test, Usability Test, etc  Formal Reviews  aka "formal.
OBJECT ORIENTED VS STRUCTURED WHICH ONE IS YOUR CHOICE.
Testing Integral part of the software development process.
How Systems are Developed
Unified Modeling Language
Applying Use Cases (Chapters 25,26)
Uml diagrams In ooad.
Logical Architecture & UML Package Diagrams
Presentation transcript:

INFO 637Lecture #61 Software Engineering Process II Designing with Teams INFO 637 Glenn Booker

INFO 637Lecture #62 Philosophy The TSP deals with the principles of designing software, not the particular methods used (which change rapidly) High level design is captured using a Software Design Specification (SDS) Detailed, or low level design is done in the implementation phase

INFO 637Lecture #63 Design Principles Design focuses on how to structure and build the product Starts once requirements have been defined and approved Design needs to be precise enough to guide the developers accurately, yet not over-specify what needs to be created

INFO 637Lecture #64 Design Principles High level design focuses on defining the components of your product, and what each must do Then low level design works out how each component will accomplish its objectives Design is often iterative, with each iteration getting closer to a final workable solution (we hope!)

INFO 637Lecture #65 Why Bother? Many organizations skip or shortchange the design phases, and jump into coding This is akin to building a house without a blueprint – it can be done, but you’re much more likely to miss something important!

INFO 637Lecture #66 Team Design Biggest challenge is to create the high level design; when the entire team’s effort depends on having a completed high level design from which to proceed Often one or two people will develop initial design concepts, then have more people investigate them in detail

INFO 637Lecture #67 Design Studies Often several approaches are tried out to see which one will best meet the project’s needs  Approaches may use different system or network architectures, programming environments, types of subsystems or interfaces, or be based on different COTS (commercial off the shelf) products Prototyping is often very helpful in evaluating approaches

INFO 637Lecture #68 Avoid Tunnel Vision The biggest problem with design is that people often pursue the first idea proposed Keep looking for other ways to solve the problem, until you’re really convinced you have found the best way Prod quieter team members for their ideas; gems are often very quiet

INFO 637Lecture #69 Design Standards Many kinds of standards can help a team produce a product that looks like one person developed it, instead of fifty Naming standards are a CM tool to ensure everyone uses the same format for naming files, variables, procedures, etc.  Avoid differences like FileName vs. File Name vs. filename vs. File-Name, ad nauseum

INFO 637Lecture #610 Design Standards Interface formats ensure that components of your product communicate with each other using the same language Messages (both error and informational) need a consistent format and to be clear Defects need to be identified by their type consistently (see Table 7.1, page 126)

INFO 637Lecture #611 Design Standards Lines of code always need to be counted in the same manner (see Appendix A) Design modeling needs to follow a clear set of terminology, so its meaning is correctly interpreted  The UML standard, for example

INFO 637Lecture #612 Design Modeling Many forms of modeling can be used to show your product’s design  Use case diagram  Sequence diagram  Data flow diagram  Entity relationship diagram  State transition diagram  And so on…

INFO 637Lecture #613 Design for Reuse One aspect of design getting more attention is deliberate reuse of code or design Designs, code, and documentation can all be reused Early in design, someone can look for functions which are used by several parts of the system – those are prime candidates for reuse

INFO 637Lecture #614 Design for Reuse Realize that designing code for reuse costs more initially than for normal code, but produces higher quality code which is easier to maintain and reuse again Many design standards can be reused by subsequent projects, so they don’t have to reinvent them

INFO 637Lecture #615 Design for Reuse Large scale reuse is also possible and encouraged Design patterns help identify solutions to common problems (see Erich Gamma’s Design Patterns classic) Entire related systems may reuse subsystems (see SEI Product Line research)

INFO 637Lecture #616 Reuse Quality High quality components are necessary for reuse – otherwise, why bother reusing garbage? Components to be reused usually get more complete review and inspection cycles, and more extensive documentation Adds to their cost, but increases usability

INFO 637Lecture #617 Reuse Library To find components for reuse, need to have:  Some library where they are known to reside  Clear conventions for documenting their assumptions, usage, and test cases Reuse works best for medium or large components – it’s often not worth finding little or simple components

INFO 637Lecture #618 Usability Usability of your system depends on anticipating how users will want to perform its functions Clear instructions, logical work flow, and prototyping all can help improve usability

INFO 637Lecture #619 Testability Designing for testability means recognizing that various levels of testing will be performed (unit, integration, system, and maybe more), and hence we need to conduct those tests as easily as possible Test scenarios, test data, and test plans all need to be created to ensure adequate testing coverage

INFO 637Lecture #620 Black vs. White Box Testing Black box testing assumes no knowledge of how the system was designed – tests are to see if typical user functions can be performed correctly White box testing allows knowledge of the internal design of the product – hence tests can focus on potential weaknesses

INFO 637Lecture #621 Design Reviews and Inspections Design problems often become invisible to the designer after missing them a few times Reviews and inspections can help uncover problems and inconsistencies Appendix C covers inspections in more detail

INFO 637Lecture #622 Inspection Methods Many inspections methods are specific to the type of product being examined General methods include  Use checklists  Look at it from another person’s viewpoint  Concentrate on one way of analyzing the product at a time  Practice inspections on paper

INFO 637Lecture #623 Inspection Data Inspections can produce much raw data  Volume of product inspected (LOC or pages)  Amount of design effort (hours)  Amount of design inspection effort (hours)  Number of defects found (in inspection, and in other phases)

INFO 637Lecture #624 Inspection Data These data can produce metrics like:  Inspection ratio (LOC/hour or pages/hour), equals the volume inspected divided by the inspection time  Development ratio (percent), the inspection time divided by the design time  Inspection yield (percent), the percent of defects which were found as a result of the inspection [which can’t be known immediately]

INFO 637Lecture #625 Inspection Reporting (INS) Inspections are captured using form INS (page 343) It captures the individual results from the inspection (effort, and number of defects found) Then during the inspection meeting, agree on the defects found

INFO 637Lecture #626 Design Scripts The initial design script is DES1 (p. 133) Conduct high level design to identify and name the major components  Capture the design using one or more methods mentioned on slide 12 Define design standards Allocate design tasks to team members

INFO 637Lecture #627 Design Scripts Prepare parts of the SDS separately Prepare the integration test plan Inspect the draft design document and test plan Update and agree upon the final SDS, and prove that it is traceable to the SRS