CSC426: SOFTWARE ENGINEERING – Part I AJAYI, O. O. 1
LECTURER, COMPUTER SCIENCE DEPARTMENT, ADEKUNLE AJASIN UNIVERSITY, AKUNGBA-AKOKO, ONDO STATE, NIGERIA. 07056433798 / 08113699553 / 08137044500
[email protected] [email protected] [email protected]
02/11/2016
CHAP1: 2
INTRODUCING SOFTWARE ENGINEERING
Software engineering can be defined as a strategy for producing quality software (Pfleeger, 1987). It can be seen as systematic and disciplined activities that addressed software quality issues.
[email protected] [email protected] [email protected]
02/11/2016
3
Cont’d It is majorly concerned with methods and techniques for developing large software. Philip(2007). He also defined it as a systematic approach to the analysis, design, assessment, implementation, testing, engineering of software, that is, the application of engineering to software.
[email protected] [email protected] [email protected]
02/11/2016
4
Cont’d: Self-Definition Software Engineering can be defined as a field of engineering that involves the theories, techniques, and tools for developing quality software. In other words, Software Engineering be described as set of processes systemic approaches that lead to building/development of efficient effective software.
[email protected] [email protected] [email protected]
can and the and 02/11/2016
5
Differences between Software Engineering and Traditional Engineering SE Software, TE Hardware and Physical Properties of a System
SE Principle of Re-Inventing, TE Principle of Inventing SE Computer Science (sub-root), TE Physics (sub-root)
[email protected] [email protected] [email protected]
02/11/2016
6
Similarity between Software Engineering and Traditional Engineering SE & TE root in Mathematics
[email protected] [email protected] [email protected]
02/11/2016
7
How Come Software Engineering? In the 1950’s and early 1960’s a kind of ‘troubled water’ erupted in the software circle. This called the attention of NATO in the late 1960’s. Meeting of the stakeholders in the software field was called to discuss what was called ‘SOFTWARE CRISIS’.
[email protected] [email protected] [email protected]
02/11/2016
8
What was discussed? Software Cost Software Project Delivery Time Software Development Methods/Models Producing Platform-Independent Software
[email protected] [email protected] [email protected]
02/11/2016
9
Conclusion of the Meeting The conclusion of the meeting to discuss ‘SOFTWARE CRISIS’, led to the establishment of SOFTWARE ENGINEERING.
They see SE as a field comprising software practitioners and guiding them by the rule of the game.
[email protected] [email protected] [email protected]
02/11/2016
10
Software Products These are software system developed and delivered to a customer in functioning state with detailed documentation, showing the installation procedures, as well as the software usage guidelines.
[email protected] [email protected] [email protected]
02/11/2016
11
Software Products: Types Generic Software: Software Products that are developed for general use. They are regarded as Ubiquitous Software. Examples are MS-Office, Adobe Packages, Corel Suites etc. Bespoke Software: Software Products that are developed in a customized way and tailored for specific use. They are regarded as Commercial Off The Shelf (COTS) Software. Examples are AVERM (Adekunle Version of Exams and Record Management) etc.
[email protected] [email protected] [email protected]
02/11/2016
12
Software Development Flow Requirement Analysis & Definition System Design Program Design Program Implementation
Unit Testing Integration Testing System Testing
System Delivery System Maintenance
[email protected] [email protected] [email protected]
02/11/2016
13
Software Development Team: Who Are They?
System Analyst: Analysis the manual or existing computerized system with a view to modifying it. System Designer: This takes care of the architectural design aspect of the system, including the system model, interface designs etc. System Programmer: This handles the programming task of the project. He works hand in hand with the designer to design and implement the program.
[email protected] [email protected] [email protected]
02/11/2016
14
Cont’d - SDT: Who Are They? System Tester: To ascertain the functionality of the program implemented, the tester comes in to test the flow, connection, relationship and communication among the various arms/unit/modules that made up the program. Overall, he also ensures the functionalities of the program. System Trainer: Though the functionalities of the system may have been rightly reviewed and reported by the tester, the users of the system can deny the report where the usage hits the rock. On this wise, it is imperative to bring in the trainer to over the formal delivery/deployment in terms of documentation, training and maintenance guidelines.
[email protected] [email protected] [email protected]
02/11/2016
15
SDT: Their Roles’ Flow Requirement Analysis & Definition
The Analyst
System Design
The Designer
Program Design
The Programmer
Program Implementation
Unit Testing
The Tester
Integration Testing System Testing
System Delivery
The Trainer
System Maintenance
[email protected] [email protected] [email protected]
02/11/2016