CS223: Software Engineering Lecture 15: Software construction.

Slides:



Advertisements
Similar presentations
Integration of MBSE and Virtual Engineering for Detailed Design
Advertisements

CSC271 Database Systems Lecture # 18. Summary: Previous Lecture  Transactions  Authorization  Authorization identifier, ownership, privileges  GRANT/REVOKE.
Lecture # 2 : Process Models
Software Construction
CS540 Software Design Lecture 1 1 Lecture 1: Introduction to Software Design Anita S. Malik Adapted from Budgen (2003) Chapters 1.
July 11 th, 2005 Software Engineering with Reusable Components RiSE’s Seminars Sametinger’s book :: Chapters 16, 17 and 18 Fred Durão.
1/18 CS 693/793 Lecture 09 Special Topics in Domain Specific Languages CS 693/793-1C Spring 2004 Mo, We, Fr 10:10 – 11:00 CH 430.
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
- 1 - Component Based Development R&D SDM Theo Schouten.
Dr. Ralph R. Young Director of Software Engineering PRC, Inc. (703) Fifth IEEE International Symposium on Requirements Engineering.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Tim St. John Masters Computer Engineering Software Engineering Track.
Data Structures and Programming.  John Edgar2.
Chapter 1 The Systems Development Environment
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 System and Software Engineering.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 1 - September 7, 2004.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Quality Assurance for Component- Based Software Development Cai Xia (Mphil Term1) Supervisor: Prof. Michael R. Lyu 5 May, 2000.
1. Topics to be discussed Introduction Objectives Testing Life Cycle Verification Vs Validation Testing Methodology Testing Levels 2.
Software Engineering Reuse.
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.
Benefits of PL/SQL. 2 home back first prev next last What Will I Learn? In this lesson, you will learn to: –List and explain the benefits of PL/SQL –List.
Chapter 1 The Systems Development Environment
SOFTWARE ENGINEERING BIT-8 APRIL, 16,2008 Introduction to UML.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
1 SYS366 Lecture 1: Introduction to Systems. 2 What is Software Development? Software Development implies developing some software – but it does not involve.
Development and Impact of Software Solutions Application of software development approaches.
EMI INFSO-RI SA2 - Quality Assurance Alberto Aimar (CERN) SA2 Leader EMI First EC Review 22 June 2011, Brussels.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
An Introduction to Software Engineering. What is Software?
January 25, 2006copyright Thomas Pole , all rights reserved 1 Software Reuse: History 1980 to 2005 History: Changes to Software Reuse Driven by.
Framework for the Development and Testing of Dependable and Safety-Critical Systems IKTA 065/ Supported by the Information and Communication.
CIS 210 Systems Analysis and Development Week 1 Part I The Systems Development Environment,
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
1 Introduction to Software Engineering Lecture 1.
Software Engineering, COMP201 Slide 1 Introduction to software engineering Lecture 1.
An Introduction to Software Engineering Support Lecture.
1 Ch. 1: Software Development (Read) 5 Phases of Software Life Cycle: Problem Analysis and Specification Design Implementation (Coding) Testing, Execution.
Frameworks CompSci 230 S Software Construction.
1 EE29B Feisal Mohammed EE29B: Introduction to Software Engineering Feisal Mohammed Ph: x3156.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (1/2)
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
An Introduction to Software Engineering (Chapter 1 from the textbook)
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Engineering. Acknowledgement Charles Moen Sharon White Bun Yue.
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
CS 1120: Computer Science II Software Life Cycle Slides courtesy of: Prof. Ajay Gupta and Prof. James Yang (format and other minor modifications by by.
Software Engineering Saeed Akhtar The University of Lahore.
Software Engineering for Capstone Courses Richard Anderson CSE 481b Winter 2007.
MANP1163 (Course Overview).  Dr Suriayati Chuprat   Room: IT-Manager’s.
MNP1163/MANP1163 (Software Construction).  Minimizing complexity  Anticipating change  Constructing for verification  Reuse  Standards in software.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
Chapter 2 Principles of Programming and Software Engineering.
Chapter 10 Software quality. This chapter discusses n Some important properties we want our system to have, specifically correctness and maintainability.
LECTURE 5 Nangwonvuma M/ Byansi D. Components, interfaces and integration Infrastructure, Middleware and Platforms Techniques – Data warehouses, extending.
CS223: Software Engineering Lecture 25: Software Testing.
1 Processes and Process Models Lecture # 5. 2 Process - 1 A process is an organized set of activities, which transforms inputs to outputs We can use synonyms.
This has been created by QA InfoTech. Choose QA InfoTech as your Automated testing partner. Visit for more information.
CS223: Software Engineering
Progile Automated Verification Engineer • PAVE •
Processes and Process Models
Maintaining software solutions
Unit# 9: Computer Program Development
Quality Assurance for Component-Based Software Development
Software Development Chapter 1.
Processes and Process Models
Presentation transcript:

CS223: Software Engineering Lecture 15: Software construction

Objective After completing this lecture the students will be able to Explain the components of software construction Use coding best practices in their projects

Definition The term software construction refers to the detailed creation of working software through a combination of o coding, o verification, o unit testing, o integration testing, and o debugging. Boundaries between design, construction, and testing (if any) will vary depending on the software life cycle processes that are used in a project.

Software Construction Fundamentals Complexity Anticipating change Verification Reuse Follow standards Managing Construction Life cycle model Planning Measurement Practical considerations Design Language Coding Testing Reuse Quality Integration Technologies API OOAD Parameterization Design by Contract Executable Platform Heterogeneity … Tools Development environment GUI Unit testing tool Profiling Performance analysis Slicing tool

Software Construction Fundamentals Software construction fundamentals include o minimizing complexity o anticipating change o constructing for verification o reuse o standards in construction

Metaphors

Minimizing Complexity The need to reduce complexity applies to o essentially every aspect of software construction o particularly critical to testing of software constructions.

How to Attack Complexity The primary sources of overly costly, ineffective designs o A complex solution to a simple problem o A simple, incorrect solution to a complex problem o An inappropriate, complex solution to a complex problem How to manage it? o Minimize the amount of essential complexity that anyone’s brain has to deal with at any one time. o Keep accidental complexity from needlessly proliferating.

Anticipating change Anticipation of change drives many aspects of software construction Helps software engineers build extensible software Anticipating change is supported by many specific techniques

Constructing for Verification Building software in such a way that faults can be readily found o software engineers writing the software o testers o users during independent testing How to do that? o Following coding standards to support code reviews and unit testing o Organizing code to support automated testing o Restricting the use of complex or hard-to-understand language structures

Reuse Using existing assets in solving different problems o libraries, o modules, o components, o source code, and o commercial off-the-shelf (COTS) assets Systematic reuse can enable significant software productivity, quality, and cost improvements.

Standards in Construction Applying external or internal development standards Helps achieve a project’s objectives for efficiency, quality, and cost. o Communication methods o Programming languages o Coding standards o Platforms o Tools

Software Construction Fundamentals Complexity Anticipating change Verification Reuse Follow standards Managing Construction Life cycle model Planning Measurement Practical considerations Design Language Coding Testing Reuse Quality Integration Technologies API OOAD Parameterization Design by Contract Executable Platform Heterogeneity … Tools Development environment GUI Unit testing tool Profiling Performance analysis Slicing tool

Kernighan Quotations "Where there are two bugs, there is likely to be a third.“ “Don't patch bad code - rewrite it." "Don't stop with your first draft."

Thank you Next Lecture: System Modeling