MNP1163/MANP1163 (Software Construction).  Minimizing complexity  Anticipating change  Constructing for verification  Reuse  Standards in software.

Slides:



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

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:
Software Construction
IEC Substation Configuration Language and Its Impact on the Engineering of Distribution Substation Systems Notes Dr. Alexander Apostolov.
Introduction To System Analysis and Design
July 11 th, 2005 Software Engineering with Reusable Components RiSE’s Seminars Sametinger’s book :: Chapters 16, 17 and 18 Fred Durão.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
- 1 - Component Based Development R&D SDM Theo Schouten.
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
Data Structures and Programming.  John Edgar2.
Introduction to High-Level Language Programming
Nyhoff, ADTs, Data Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved Software.
Introduction to Information System Development.
Language Evaluation Criteria
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Introduction to Software Engineering CEN 4010.
9/7/2015Software Construction1 SOFTWARE CONSTRUCTION LECTURE 1 Engr. Huma Ayub
Systems Analysis And Design © Systems Analysis And Design © V. Rajaraman MODULE 14 CASE TOOLS Learning Units 14.1 CASE tools and their importance 14.2.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
Cmpe 471 Computer Crime: Techniques and Countermeasures.
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
© 2012 IBM Corporation Rational Insight | Back to Basis Series Chao Zhang Unit Testing.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
1 SYS366 Lecture Visual Modeling and Business Use Case Diagrams.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Object Management Group (OMG) Specifies open standards for every aspect of distributed computing Multiplatform Model Driven Architecture (MDA)
Chapter 1 Introduction to Structured Design. Introduction  System  A combination of people, equipment, and procedures that work together to perform.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Software Testing and Maintenance 1 Code Review  Introduction  How to Conduct Code Review  Practical Tips  Tool Support  Summary.
Software Engineering Principles. SE Principles Principles are statements describing desirable properties of the product and process.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
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.
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
MNP1163 (Software Construction).  SDLC and Construction Models  Construction Planning  Construction Measurement.
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.
 Programming - the process of creating computer programs.
Nic Shulver, Welcome to Principles of Software Engineering Tutor: Nic Shulver Web site and Blackboard presence 100% coursework,
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
Introduction to Classes, Objects, Methods and Attributes Lecture # 5.
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
CS223: Software Engineering Lecture 15: Software construction.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
1 SYS366 Week 2 - Lecture 2 Visual Modeling & UML.
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Software Design Process. What is software? mid-1970s executable binary code ‘source code’ and the resulting binary code 1990s development of the Internet.
Advanced Software Engineering Dr. Cheng
Modern Systems Analysis and Design Third Edition
Types for Programs and Proofs
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Chapter 18 Maintaining Information Systems
Software Design and Development
Maintaining software solutions
LEVEL OF TESTING J.ALFRED DANIEL, AP/CSE.
Software Processes.
Tools of Software Development
Modern Systems Analysis and Design Third Edition
Component-Level Design
Modern Systems Analysis and Design Third Edition
Software Design Lecture : 8
Chapter 7 –Implementation Issues
Chapter 2. Problem Solving and Software Engineering
From Use Cases to Implementation
Presentation transcript:

MNP1163/MANP1163 (Software Construction)

 Minimizing complexity  Anticipating change  Constructing for verification  Reuse  Standards in software construction

 The term software construction refers to the detailed creation of working software through a combination of coding, verification, unit testing, integration testing, and debugging

 Software construction closely tied to  Software design  Software testing Design Construction Testing

 Software construction typically produces the highest number of configuration items that need to be managed in a software project (source files, documentation, test cases, and so on).  Thus, the Software Construction is also closely linked to the Software Configuration Management.

 Construction is tool intensive  Quality (or lack thereof) is very evident in the construction products  Construction highly related to Computer Science due to  Use of algorithms  Detailed coding practices

 Humans are severely limited in our ability to hold complex information in our working memories  As a result, minimizing complexity is one the of strongest drivers in software construction  Need to reduce complexity throughout the lifecycle  As functionality increases, so does complexity

 Accomplished through use of standards  Examples:  J2EE for complex, distributed Java applications  UML for modeling all aspects of complex systems  High-order programming languages such as C++ and Java  Source code formatting rules to aid readability

 Software changes over time  Anticipation of change affect how software is constructed  This can effect  Use of control structures  Handling of errors  Source code organization  Code documentation  Coding standards

 Construct software that allows bugs to be easily found and fixed  Examples:  Enforce coding standards ▪ Helps support code reviews  Unit testing  Organizing code to support automated testing  Restricted use of complex or hard-to-understand language structures

 Reuse refers to using existing assets in solving different problems.  In software construction, typical assets that are reused include libraries, modules, components, source code, and commercial off-the-shelf (COTS) assets.  Reuse is best practiced systematically, according to a well-defined, repeatable process.  Systematic reuse can enable significant software productivity, quality, and cost improvements.

Standards which directly affect construction issues include:  Programming languages  E.g. standards for languages like Java and C++  Communication methods  E.g. standards for document formats and contents  Platforms  E.g. programmer interface standards for operating system calls, J2EE  Tools  E.g. diagrammatic standards for notations like the Unified Modeling Language