Concepts of Software Development Chapter 1. Separation of Concerns Break the system down into less complicated parts, and concentrate on each one in turn.

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

10 Software Engineering Foundations of Computer Science ã Cengage Learning.
CIS-74 Computer Software Quality Assurance Systematic Software Testing Chapter 1: An Overview of the Testing Process.
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
The “Lifecycle” of Software. Chapter 5. Alternatives to the Waterfall Model The “Waterfall” model can mislead: boundaries between phases are not always.
CSCU 411 Software Engineering Chapter 2 Introduction to Software Engineering Management.
Project Plans CSCI102 - Systems ITCS905 - Systems MCS Systems.
Software Testing. Overview Definition of Software Testing Problems with Testing Benefits of Testing Effective Methods for Testing.
The Soft Topics in Software Engineering Mark Ardis Stephen Chenoweth Frank Young.
Project Management and Communication Represented by: Latifa Jaber Al-Ghafran.
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.
CSC 509, Software Engineering II 1 CSC 509 Software Engineering II Winter Quarter, 2005 Clark S. Turner.
System Analysis System Analysis - Mr. Ahmad Al-Ghoul System Analysis and Design.
Introduction to Software Engineering CS-300 Fall 2005 Supreeth Venkataraman.
1 SWE Introduction to Software Engineering Lecture 11 - Requirements Engineering Processes.
CSC230 Software Design (Engineering)
Lesson 2: Software Project Planning
Software Documentation Written By: Ian Sommerville Presentation By: Stephen Lopez-Couto.
1 Evaluation. 2 Evaluating The Organization Effective evaluation begins at the organizational level. It starts with a strategic plan that has been carefully.
THE ROLE OF PROCESS IN SOFTWARE QUALITY By K.KARTHIKEYAN.
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.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Chapter 6 Requirements Engineering Process.
Information Systems in Organisations System Development: The Environment.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
1 REQUIREMENT ENGINEERING Chapter 7. 2 REQUIREMENT ENGINEERING Definition Establishing what the customer requires from a software system. OR It helps.
The Account Executive’s Job Description. Account Service Advertising is an ideas business. People create ideas. Good account executives like working with.
Planning and Writing Your Documents Chapter 6. Start of the Project Start the project by knowing the software you will write about, but you should try.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
PBL in Team Applied to Software Engineering Education Liubo Ouyang Software School, Hunan University CEIS-SIOE, January 2006, Harbin.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
Software Engineering Management Lecture 1 The Software Process.
CPSC 372 John D. McGregor Module 2 Session 1 More on requirements and the Investment Decision.
Team Software Process (TSPi) CS4320 Fall TSP Strategy Provide a simple process framework based on the PSP. Use modest, well-defined problems. Develop.
IT Job Roles & Responsibilities Shannon Ciriaco Unit 2:
L8 - March 28, 2006copyright Thomas Pole , all rights reserved 1 Lecture 8: Software Asset Management and Text Ch. 5: Software Factories, (Review)
240 3/30/98 CSE 143 Object-Oriented Design [Chapter 10]
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Chapter 1 Data Structures and Algorithms. Primary Goals Present commonly used data structures Present commonly used data structures Introduce the idea.
The Systems Life Cycle AS Computing F451 AS Computing F451.
Apply Quality Management Techniques Project Quality Processes Certificate IV in Project Management Qualification Code BSB41507 Unit Code BSBPMG404A.
1 REVIEWS A Standard Form of Quality Assurance. 2 Major Alternatives for QA proof of correctness review code testing.
 Chapter 1: Introduction NET481: Project Management Afnan Albahli.
Software Engineering Lecture # 1.
Software Design Chapter 11. Purposes of Design Design transforms the specification into a design. The end purpose of the design is to produce detail and.
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
COMP2110 Software Design in 2003 ● a(nother) framework for Software Engineering ● the Software Engineering ideas and concepts in comp2110 ● Organisation.
Software Quality Assurance and Testing Fazal Rehman Shamil.
DE?!GN software. COMP2110 Software Design in 2004 Chris Johnson 1.Software Requirements and Software Design in a framework for Software Engineering 2.The.
© NALO Solutions Limited NALO Solutions, presents the – Revenue Collector App Using Mobile Phones to gather Revenue SOFTWARE ENGINEERING.
 System Requirement Specification and System Planning.
1 Week 1 Introduction, Writing a Program, Building a System Software Engineering Fall Term 2015 Marymount University School of Business Administration.
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
Software Quality Control and Quality Assurance: Introduction
Software Engineering Management
Classifications of Software Requirements
The Systems Engineering Context
TechStambha PMP Certification Training
CS701 SOFTWARE ENGINEERING
V-Shaped SDLC Model Lecture-6.
Software Documentation
Software Engineering (CSI 321)
Decomposition.
Software Quality Engineering
“Would I have to do this all by myself …….?”
Introduction to Systems Analysis and Design Stefano Moshi Memorial University College System Analysis & Design BIT
CSC 480 Software Engineering
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Introduction to Project Management
Presentation transcript:

Concepts of Software Development Chapter 1

Separation of Concerns Break the system down into less complicated parts, and concentrate on each one in turn. Decomposition should “separate concerns” Decomposing the problem of developing software: –Management vs. technical –Teamwork vs. individual effort –Different development phases.

Management vs. technical It’s our contention that managers play a very important role in software engineering. What managers do contrasts with what engineers do…engineers are “individual contributors” In a nutshell, technical employees (such as engineers) are paid to deliver a product, and managers are paid to see that all employees (and resources) are properly orchestrated.

Know how the other half lives Since engineers deliver a product (in this case, software), to a client (their employer), it is useful to know how to keep their client satisfied. In this case, their client’s representative is their manager, so it’s important for engineers to know what managers do, and what their manager’s interests are!

You don't have to love 'em Management is the subject of a lot of antagonism from the engineering community; some is deserved, perhaps, but most isn’t. Good managers can handle a lot of issues engineers can’t (or won’t), such as workplace politics, and issues with team members.

Teamwork vs. individual effort This course focuses primarily on the individual engineer, but engineers rarely work alone. Engineers who become professional developers are well advised to acquire team skills, and to learn a bit about psychology and human relations!

Different tasks-development phases The software “lifecycle” is broken down into different activities. Each activity has a descriptive name that hints at the main objective of that activity, called a “phase”. The primary “product” of each phase will vary, but the products are (in most cases) documents.

Phases of the Software Lifecycle The names of the phases given to the software lifecycle differs according to which lifecycle model that is used. The model chosen for the software development effort may depend upon factors such as team size and organization, or project size and organization.

Information exchange between developer and end user Almost every software model will have an activity defined where information is exchanged between the end-user and the developer. The “end users” aren’t always the just “cash customer”, they typically include a marketing representative (they have to sell it), technical support (they have to support it), manuals (they have to tell people how to use it), and others. When end-user’s interests conflict, the most important is usually the cash customer, of course!

Complete problem description (developer only) The developer has the biggest interest in getting a complete and usable problem description, so this effort I usually driven by the developer. A problem description needs to describe what the problem is, but not how the problem is to be solved. The “how” effort is really a design activity!

Breakdown into detailed assignments for programming Ultimately, we need to progress to a point where well-defined, individual programming assignments can be given to the programmers. Somehow, we need to derive the programming assignment descriptions from the problem statement. This activity is usually called “design” in most lifecycle models.

Programming This is the activity all software engineers know and (hopefully) love. If this activity is to be fast and effective, the programming assignment needs to be written so that it is complete and easy to follow.

Testing When the program has been written, compiled and is ready to execute, the important questions arise: –“Did we build what we said we would?” –“Is this what the customers need?” –“Is this what the customers expected?” How do we find out the answers to these questions? Hopefully, these questions were answered earlier in the project, and there is a “test plan”.

Changing the program Once testing has begun, inconsistencies, programming defects (“bugs”) and “needed enhancements” will arise. Simply put, these issues will mean that the program will have to be changed. When the program is changed, it will need to be checked again.

Naming the development phases Requirements: The process of defining the problem. Specification: Recording the problem in a notation that lends itself to analysis and design. Design: Analyzing the problem, and defining a solution. Coding: Implementing the solution. Testing: Checking the implementation against the problem definition and the end-user’s needs.