MNP1163 (Software Construction).  SDLC and Construction Models  Construction Planning  Construction Measurement.

Slides:



Advertisements
Similar presentations
September 2008Mike Woodard Rational Unified Process Key Concepts Mike Woodard.
Advertisements

Configuration management
1 Requirements and the Software Lifecycle The traditional software process models Waterfall model Spiral model The iterative approach Chapter 3.
Object-Oriented Software Development CS 3331 Fall 2009.
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Chapter 10 Schedule Your Schedule. Copyright 2004 by Pearson Education, Inc. Identifying And Scheduling Tasks The schedule from the Software Development.
Configuration Management Managing Change. Points to Ponder Which is more important?  stability  progress Why is change potentially dangerous?
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
Introduction To System Analysis and Design
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
DITSCAP Phase 2 - Verification Pramod Jampala Christopher Swenson.
Jouhayna Al-Ayoubi SWEN 5230 – Software Project Management.
Software Configuration Management
Release & Deployment ITIL Version 3
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Effective Methods for Software and Systems Integration
Software Construction. Implementation System Specification Requirements Analysis Architectural Design Detailed Design Coding & Debugging Unit Testing.
Upstream Prerequisites
9/7/2015Software Construction1 SOFTWARE CONSTRUCTION LECTURE 1 Engr. Huma Ayub
Introduction to Software Quality Assurance (SQA)
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
CSI315 Web Applications and Technology Overview of Systems Development (342)
Using IBM Rational Unified Process for software maintenance
Comp 245 Data Structures Software Engineering. What is Software Engineering? Most students obtain the problem and immediately start coding the solution.
Introduction to Software Engineering. Topic Covered What is software? Attribute of good S/w? Computer Software? What is Software Engineering? Evolving.
Chapter 2 The process Process, Methods, and Tools
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
S oftware Q uality A ssurance Part One Reviews and Inspections.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
Object-Oriented Analysis and Design OVERVIEW. Objectives  Describe Information Systems  Explain the role of a systems analyst  Introduce object-oriented.
System Development Process Prof. Sujata Rao. 2Overview Systems development life cycle (SDLC) – Provides overall framework for managing system development.
1 Chapter 5 Practice: A Generic View Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
The Program Development Cycle
Computers Are Your Future © 2006 Prentice Hall, Inc.
Configuration Management (CM)
Software Engineering Management Lecture 1 The Software Process.
Introduction To System Analysis and Design
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
1 Requirements Management - General concepts - Noureddine Abbadeni King Saud University College of Computer and Information Sciences Based on “Software.
Computers Are Your Future © 2008 Prentice Hall, Inc.
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
Software Testing and Maintenance 1 Code Review  Introduction  How to Conduct Code Review  Practical Tips  Tool Support  Summary.
CEN5011, Fall CEN5011 Software Engineering Dr. Yi Deng ECS359, (305)
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
Reviews and Inspections. Types of Evaluations Formal Design Reviews conducted by senior personnel or outside experts uncover potential problems Inspections.
Course Introduction CEN 5016 Software Engineering Dr. David A. Workman School of EE and Computer Science January 9, 2007.
Chapter 8 Workflows of the Process Taken from Walker Royce’s textbook – Software Project Management plus a number of Personal Comments.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
Meghe Group of Institutions Department for Technology Enhanced Learning 1.
C++ for Engineers and Scientists, Second Edition 1 Problem Solution and Software Development Software development procedure: method for solving problems.
More SQA Reviews and Inspections. Types of Evaluations  Verification Unit Test, Integration Test, Usability Test, etc  Formal Reviews  aka "formal.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
Requirement Engineering Management Amna Shifia Nisafani Feby Artwodini M. Department of Information Systems Subject : Requirement Engineering.
Advanced Software Engineering Dr. Cheng
Software Engineering Management
IEEE Std 1074: Standard for Software Lifecycle
Software Development Life Cycle
Introduction to Software Engineering
Chapter 1 Introduction(1.1)
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
Baisc Of Software Testing
Software Engineering I
Presentation transcript:

MNP1163 (Software Construction)

 SDLC and Construction Models  Construction Planning  Construction Measurement

Need, wish, policy, law User Requirements Systems Requirements Global Design Detail Design Implementation Component Test Execution Integration Test Execution System Test Execution Acceptance Test Execution Operational systems Preparation Acceptance Test Preparation Systems Test Preparation Integration Test

Phase 1 Define Develop Build Test Implement Phase 2 Define Develop Build Test Implement Phase 3 Define Develop Build Test Implement

 What is Construction Planning?  Laying out the work plan (i.e. schedule) to design, implement, debug, and unit test the software

 Construction planning major concerns:  Coders are typically not planners  Schedules will be difficult to maintain unless a good architecture design is in place  Many organizations to not collect project data on which to plan future projects  Many managers consider planning to be a waste of time and therefore don’t encourage it  Project plans may be limited to the construction plans  Many organizations and projects do not use systematic cost estimating methods such as models

 Consider reducing development costs by planning to:  Reduce the size and/or complexity  Improve the development process  Use more highly skilled people and build better teams  Use better tools  Reduce quality thresholds

 Some actions include  Use an object-oriented approach  Use COTS components  Use an iterative approach  Provide training to development team  Automate tedious tasks with tools

 As with building construction, much of the success or failure of the project already determined before construction begins  Upstream activities such as project planning, requirements, architecture, and design are crucial to success  Typical high-risk areas  Project planning  Requirements  Architecture  Preparation is a way to reduce these risks

 The problem being solved via the application must be well defined  Common names for the document containing the problem statement:  Product Vision  Vision Statement  Product Definition  Defines the problem without reference to potential solutions  Helps avoid solving the wrong problem!

 Requirements describe in detail what a system is supposed to do, therefore are invaluable for construction  Explicit requirements:  Help ensure the user drives system functionality ▪ Rather than the programmer  Reduce the number of construction debates  Help minimize changes after development begins  Specifying requirements adequately is a key to project success

 Quality of the architecture determines the conceptual integrity of the system  A proper architecture:  Gives structure to maintain conceptual integrity  Provides guidance to programmers  Partitions work  Architecture-level problems are much more costly to fix than are coding errors  Good architecture can make construction easy  Bad architecture makes construction difficult

 Time budgeted for requirements and architecture work  10 to 20 percent of manpower  20 to 30 percent of schedule  If requirements are unstable  Do not ignore, spend time to fix  The analyst should fix if a formal project  Can be fixed by the programmer for informal projects  Use same heuristics for problems with the architecture

 Many software development approaches have been tried over the years  Some examples:  Functional  Object-Oriented  Iterative  Waterfall  Agile  Data-centric  The construction team must follow some approach  Chosen approach must be appropriate for the task at hand

 Programming language choices affect  Productivity  Code quality  Programmers more productive using a familiar language  High-level languages provided higher quality and better productivity  Some languages better at expressing programming concepts than others  The ways in which a programmers express themselves are affected by the chosen language

 Questions to answer regarding practices:  How detailed will the design be?  What are the coding conventions for names, comments, layout, etc.?  How will the architecture be enforced?  Is the project’s use of technology ahead of or behind the power curve, and is this appropriate given the circumstances?  What is the integration procedure, how often is it done, and who participates?  Will developers program individually, in pairs, or some combination of this?  Where and when will builds occur?

Modern programming tools  Are essential to maintain programmer productivity  Reduce tedious and redundant tasks  Must be appropriate for the task at hand Tools preparation checklist:  Are all product licenses current?  Are all products at current, supported revision level?  Have all programmers received proper training on the tools?  Does the project have a configuration management tool?  Does the project have a tool to track change requests?  Do project team members have sufficient workstations?  Does the project have sufficient test environments?  Does the project have sufficient build environments?

 For small development efforts  Self managed  Everyone is a peer  For mid-size development efforts  Single team  For large development efforts  Multiple teams

 [IE04] IEEE Computer Society, Guide to the Software Engineering Body of Knowledge (SWEBOK), IEEE Computer Society Press, Los Alamitos, CA 20001, June 2004  [RS04] IBM Rational Software, The Rational Unified Process v , 2004  [RT03]  [SM04] S. McConnell, Code Complete: A Practical Handbook of Software Construction, Second Edition, Microsoft Press,  [WR01] Walker Royce, Software Project Management, A Unified Framework, Addison-Wesley, Boston, MA, 2001