te6504 software mangement...this ppt will cover the bellow topics 1. what is software 2. what is...

28
SOFTWARE ENGINNERING SEBGHATULLAH “ASLAMZAI” (Master of Computer Science UKM) [email protected]

Upload: others

Post on 23-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TE6504 SOFTWARE MANGEMENT...This PPT will cover the bellow topics 1. what is software 2. What is software engineering 3. What is the difference between software engineering and computer

SOFTWARE ENGINNERING

SEBGHATULLAH “ASLAMZAI”

(Master of Computer Science UKM)

[email protected]

Page 2: TE6504 SOFTWARE MANGEMENT...This PPT will cover the bellow topics 1. what is software 2. What is software engineering 3. What is the difference between software engineering and computer

This PPT will cover the bellow topics

1. what is software 2. What is software engineering 3. What is the difference between software

engineering and computer science 4. What is software process 5. What is software process model 6. What are the software engineering method 7. What are the attribute of good software 8. What are the challenging facing, software

engineering

Page 3: TE6504 SOFTWARE MANGEMENT...This PPT will cover the bellow topics 1. what is software 2. What is software engineering 3. What is the difference between software engineering and computer

What is software

Many people equate the term software with computer programs, I prefer a broader definition where software is not just the computer program but also all the associated documentation and configuration data that is need to operate correctly.

Software - A set of instructions, stored digitally within the computer's memory, which tells the computer system what to do.

Page 4: TE6504 SOFTWARE MANGEMENT...This PPT will cover the bellow topics 1. what is software 2. What is software engineering 3. What is the difference between software engineering and computer

Software engineering

• Software engineering is an engineering discipline that is concerned with all the aspects of software production from the early stage of system specification to maintaining the system after it has gone into use. In the definition there are two key points:

Page 5: TE6504 SOFTWARE MANGEMENT...This PPT will cover the bellow topics 1. what is software 2. What is software engineering 3. What is the difference between software engineering and computer

• Engineering discipline:

Engineers make things work. They apply theories methods and tools where these are appropriate, but they use them selectively and always try to discover solution to the problems even when there are no applicable theories and methods.

Page 6: TE6504 SOFTWARE MANGEMENT...This PPT will cover the bellow topics 1. what is software 2. What is software engineering 3. What is the difference between software engineering and computer

• All aspects of software production:

Software engineering is not just concerned with the technical processes of software development but also with activates such as software project management and with the development of tools, methods and theories to support software production.

Page 7: TE6504 SOFTWARE MANGEMENT...This PPT will cover the bellow topics 1. what is software 2. What is software engineering 3. What is the difference between software engineering and computer

• In general, software engineering adopt a systematic and organized approach to their work, as this is often the most effective way to produce high- quality software. How ever engineering is all about selecting the most appropriate method for software development.

Page 8: TE6504 SOFTWARE MANGEMENT...This PPT will cover the bellow topics 1. what is software 2. What is software engineering 3. What is the difference between software engineering and computer

The difference between software engineering and

computer science

Page 9: TE6504 SOFTWARE MANGEMENT...This PPT will cover the bellow topics 1. what is software 2. What is software engineering 3. What is the difference between software engineering and computer

difference between software engineering and computer science

• Computer science is concerned with the theories and methods that underlie computers and software system, whereas software engineering is concerned with the practical problems of producing software. Some knowledge of computer science is essential for software engineering in the same way that some knowledge of physic's is essential for electrical engineers.

Page 10: TE6504 SOFTWARE MANGEMENT...This PPT will cover the bellow topics 1. what is software 2. What is software engineering 3. What is the difference between software engineering and computer

System engineering

• System engineering is concerned with all aspects of the development and evolution of complex systems where software plays a major role. System engineering is concerned with hardware development, policy and process design and system deployment as well as software engineering.

Page 11: TE6504 SOFTWARE MANGEMENT...This PPT will cover the bellow topics 1. what is software 2. What is software engineering 3. What is the difference between software engineering and computer

System engineers are involved in specifying the system, defining its overall architecture and then integrating the different parts to create the finished system.

System engineering is an older disciplinal than software engineering.

Page 12: TE6504 SOFTWARE MANGEMENT...This PPT will cover the bellow topics 1. what is software 2. What is software engineering 3. What is the difference between software engineering and computer

Software Process

• A software process is a set of related activities that leads to the production of a software product. These activities may involve the development of software from scratch in a standard programming language like Java or C.

Page 13: TE6504 SOFTWARE MANGEMENT...This PPT will cover the bellow topics 1. what is software 2. What is software engineering 3. What is the difference between software engineering and computer

What is Software Process?

However, business applications are not necessarily developed in this way. New business software is now often developed by extending and modifying existing systems or by configuring and integrating off-the-shelf software or system components.

Most software is developed by:

– Extending and modifying existing systems.

– Configuration and integrating “off-the-shelf” software or components.

Page 14: TE6504 SOFTWARE MANGEMENT...This PPT will cover the bellow topics 1. what is software 2. What is software engineering 3. What is the difference between software engineering and computer

Software Process

The objective of any software processes is high quality (i.e.

on time, less cost, error-free product, less rework etc.)

There are many different software processes but all must include four activities that are fundamental to software engineering:

Page 15: TE6504 SOFTWARE MANGEMENT...This PPT will cover the bellow topics 1. what is software 2. What is software engineering 3. What is the difference between software engineering and computer

Software Process

1- Specification

2- Design

3- Validation

4- Evolution

Page 16: TE6504 SOFTWARE MANGEMENT...This PPT will cover the bellow topics 1. what is software 2. What is software engineering 3. What is the difference between software engineering and computer

What is Software Process? – Specification

• Define the functionality & constraints of the software.

– Design & Implementation (Development) • Propose the structure/architecture and develop the software

based on the specification.

– Validation • Developed software is checked to ensure it does what customer

wants.

– Evolution • Running software must evolve eventually to meet the changing

customer needs.

Page 17: TE6504 SOFTWARE MANGEMENT...This PPT will cover the bellow topics 1. what is software 2. What is software engineering 3. What is the difference between software engineering and computer

What is Software Process? • Supporting activities

– Software project management • Assess progress against the project plan; take actions to maintain schedule.

– Formal technical reviews • Assess intermediate products to uncover and remove errors.

– Software quality assurance • Define and conduct activities to ensure software quality.

– Software configuration management • Manage the effect of changes throughout the process.

– Work product preparation and production • Create work products such as models, documents etc.

– Reusability management • Defines criteria and strategy to reuse components.

– Measurement • Define and collect process, product and project measures for improvement.

– Risk management • Assess risks that may affect the outcomes of the project or quality of the

product.

Page 18: TE6504 SOFTWARE MANGEMENT...This PPT will cover the bellow topics 1. what is software 2. What is software engineering 3. What is the difference between software engineering and computer

What is Software Process?

• Plan-driven processes are processes where all of the process activities are planned in advance and progress is measured against this plan.

• In agile processes, planning is incremental and it is easier to change the process to reflect changing customer requirements.

• In practice, most practical processes include elements of both plan-driven and agile approaches.

• There are no right or wrong software processes.

Page 19: TE6504 SOFTWARE MANGEMENT...This PPT will cover the bellow topics 1. what is software 2. What is software engineering 3. What is the difference between software engineering and computer

What is a Software Process Model?

• A software process model is an abstract representation of a process or a software process model is a simplified representation of a software process

• It presents a description of a process from some particular perspectives (i.e. engineering-oriented; user-oriented; reusability etc.).

• There are 3 generic process models: – Waterfall (the oldest)

– Incremental

– Reuse-oriented

Page 20: TE6504 SOFTWARE MANGEMENT...This PPT will cover the bellow topics 1. what is software 2. What is software engineering 3. What is the difference between software engineering and computer

What is a Software Process Model?

• The waterfall model – Plan-driven model. Separate and distinct phases of specification and

development.

• Incremental development – Specification, development and validation are interleaved. May be

plan-driven or agile.

• Reuse-oriented software engineering – The system is assembled from existing components. May be plan-

driven or agile.

• In practice, most large systems are developed using a process that incorporates elements from all of these models.

Page 21: TE6504 SOFTWARE MANGEMENT...This PPT will cover the bellow topics 1. what is software 2. What is software engineering 3. What is the difference between software engineering and computer

What is a Software Process Model?

• There are many variants of these generic models.

– E.g. Formal development (waterfall-like) produces a formal specification that is refined through several stages (incremental), which later can be executed directly as code.

– In practice, they are combined and used together especially for large projects.

Page 22: TE6504 SOFTWARE MANGEMENT...This PPT will cover the bellow topics 1. what is software 2. What is software engineering 3. What is the difference between software engineering and computer

Waterfall Model

The Waterfall Model was first Process Model to be introduced. It is also referred to as a linear-sequential. It is very simple to understand and use. In a waterfall model, each phase must be completed fully before the next phase can begin.

Page 23: TE6504 SOFTWARE MANGEMENT...This PPT will cover the bellow topics 1. what is software 2. What is software engineering 3. What is the difference between software engineering and computer

Waterfall Model

This type of model is basically used for the project which is small and there are no undefined requirements. At the end of each phase, a review takes place to determine if the project is on the right path and whether or not to continue or discard the project. In this model the testing starts only after the development is complete. In waterfall model phases do not overlap

Page 24: TE6504 SOFTWARE MANGEMENT...This PPT will cover the bellow topics 1. what is software 2. What is software engineering 3. What is the difference between software engineering and computer

The Waterfall Model

Page 25: TE6504 SOFTWARE MANGEMENT...This PPT will cover the bellow topics 1. what is software 2. What is software engineering 3. What is the difference between software engineering and computer

Advantages of waterfall model

This model is simple and easy to understand and use. It is easy to manage due to the rigidity of the model – each phase has specific deliverables and a review process.

In this model phases are processed and completed one at a time. Phases do not overlap. Waterfall model works well for smaller projects where requirements are very well understood.

Page 26: TE6504 SOFTWARE MANGEMENT...This PPT will cover the bellow topics 1. what is software 2. What is software engineering 3. What is the difference between software engineering and computer

Disadvantages of waterfall model

Once an application is in the testing stage, it is very difficult to go back and change something that was not well-thought out in the concept stage. No working software is produced until late during the life cycle. High amounts of risk and uncertainty. Not a good model for complex and object-oriented projects. Not suitable for the projects where requirements are at a moderate to high risk of changing.

Page 27: TE6504 SOFTWARE MANGEMENT...This PPT will cover the bellow topics 1. what is software 2. What is software engineering 3. What is the difference between software engineering and computer

When to use the waterfall model

This model is used only when the requirements are very well known, clear and fixed.

Product definition is stable.

Technology is understood.

There are no ambiguous requirements

Very less customer enter action is involved during the development of the product. Once the product is ready then only it can be demoed to the end users. Once the product is developed and if any failure occurs then the cost of fixing such issues are very high, because we need to update everywhere from document till the logic.

Page 28: TE6504 SOFTWARE MANGEMENT...This PPT will cover the bellow topics 1. what is software 2. What is software engineering 3. What is the difference between software engineering and computer

Home work

• Indentify a software development model at lest in 2 pages, the first page will be cover page which shows the title of the home work and it is author.

If any question please …….