Software engineering dkt311
This presentation is the property of its rightful owner.
Sponsored Links
1 / 38

Software Engineering DKT311 PowerPoint PPT Presentation


  • 43 Views
  • Uploaded on
  • Presentation posted in: General

Software Engineering DKT311. ROHANI BINTI S MOHAMED FAROOK MOHAMED ELSHAIKH 0175171894 KKF 8A – room 4. Course overview. Lectures 60% Wednesday 1 – 3 pm at BKQ 6 Lab 40% Thursday 9 – 11 am at MKQ1 As follow: Final exam 50% Practical 50% lab assignment 30% test 10% Lab test 10%.

Download Presentation

Software Engineering DKT311

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Software engineering dkt311

Software EngineeringDKT311

ROHANI BINTI S MOHAMED FAROOK

MOHAMED ELSHAIKH

0175171894

KKF 8A – room 4


Course overview

Course overview

  • Lectures 60%

    • Wednesday 1 – 3 pm at BKQ 6

  • Lab 40%

    • Thursday 9 – 11 am at MKQ1

      As follow:

    • Final exam 50%

    • Practical 50%

      • lab assignment 30%

      • test 10%

      • Lab test 10%


Guide lines

Guide lines

  • Early study

    • Object-Oriented Software Engineering

      Practical software development using UML and JAVA, 2nd edition, (Timothy C. Lethbridge and Robert Laganiere)

    • Lecture notes

    • provided materials

    • Take notes during the lecture

  • Assignments

    • For self development

    • Counted lab assignment


Course outcomes

Course outcomes

  • to describe software engineering concepts and terms used in its discipline

  • to analyze a problem based on different software development models, to write specification document based on the standard documentation

  • to design and develop software prototype based on the specification and verification and validation

  • to apply software engineering skills to project management


Lecture 1

Lecture 1.

  • Software and software engineering

  • Software Engineering definition

  • Difference between computer science and

  • software engineering

  • Review to Object Orientation

  • Class and objects

  • Instances variables

  • Methods, operations and polymorphism

  • Inheritance


Questions you need to answer

Questions you need to answer

  • What is software?

  • What is software engineering?

  • What is the difference between software engineering and computer science?

  • What are the costs of software engineering?

  • What are software engineering methods?

  • What are the attributes of good software?

  • What are the key challenges facing software engineering?


What is software

What is software

  • Computer programs and associated documentation such as requirements, design models and user manuals.

  • Software products may be developed for a particular customer or may be developed for a general market.

  • Software products may be

    • Generic - developed to be sold to a range of different customers e.g. PC software such as Excel or Word.

    • Bespoke (custom) - developed for a single customer according to their specification.

    • Embedded software – to adopt hardware functionality.

  • New software can be created by developing new programs, configuring generic software systems or reusing existing software.


Software problems

Software problems

  • Software crisis

    • Poor software design.

    • Doesn't meet their expectations.

    • Never delivered or late delivered.

    • Over budget.

    • Software bugs.

  • Software engineering methods

    • To meet expectations.

    • Avoid crisis.


Software designing artifacts

Software designing artifacts

  • Software unlike other engineering products are:

    • Illusive.

    • Low mass production.

    • Un-engineered designs are easy to collapse.

    • no expiry date.


Software engineering

Software engineering

  • Solve problems

    • Economically

    • systematic

    • High quality

    • Satisfactory

    • Reliable

    • Maintainable

    • Flexible


Other definitions

Other definitions

  • IEEE: (1) the application of systematic, disciplined, quantifiable approach to the development, operation, maintenance of software ;that is, the application of engineering to software. (2) the study of approaches as in (1).

  • The Canadian Standards Association: the systematic activities involved in the design, implementation and testing of software to optimized its production and support.


Software engineering vs computer science

Software engineering vs. computer science

  • Computer science is concerned with theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software.

  • Computer science theories are still insufficient to act as a complete underpinning for software engineering (unlike e.g. physics and electrical engineering).


Stakeholders

Stakeholders

DEVELPER

MANAGMENT

software

CUSTOMERS

USER

SOFTWARE DEVELOPER


Stakeholders1

Stakeholders

  • Users

    • Those whom use the software

  • Customers

    • Start design (decision)

  • Software developers

    • Develop.

    • Maintenance.

    • Software engineers

    • Recognized by their high quality work.

    • Work in teams.

  • Development manager

    • Companies managers.

    • Always looking for profit ( low design cost

    • & pleasing customers.


Software quality

Software quality

  • Is this a high quality software?

    • Customer:

      • Solves my problem.

      • Low cost (money and resources).

    • User:

      • Easy.

      • Efficient.

      • Get job done.


Software engineering dkt311

Cont.

  • Developer:

    • Easy to design

    • Maintainable

    • Reusable

  • Development manager:

    • More selling

    • Satisfactory

    • Low design & maintaining cost


Software engineering dkt311

Cont.

  • It is very hard to say this is a high quality software, but we may consider the most important five quality attributes:

  • Usability

  • Efficiency

  • Reliability

  • Maintainability

  • Reusability


Software engineering dkt311

Cont.

  • Make your objectives

  • Internal quality

    • Comments

    • Complexity

  • Short term

    • Does it meets the immediate needs?

    • Sufficient, efficient for today data?

  • Long term quality

    • What about maintainability?

    • What about future needs?


Software engineering project

Software engineering project

  • Team work

    • Few people for small projects

    • What about big projects

  • Three categories:

    • Evolutionary project

      • Modifying

    • Greenfield project

      • Developing from scratch

    • Build from existing components

      • Uses frameworks

      • New for missed details


Common project activity

Common project activity

  • Project life cycle:

  • Requirement and specification

    • Understanding the problem

  • Design

    • How to implement the requirements

  • Modeling

    • Software representation


Software engineering dkt311

Cont.

  • Programming

    • Translate what you did to high level programming language (coding)

  • Quality assurance

    • Meet the quality objectives

      • Reviews and inspections

      • Testing

  • Deployment

    • Distributing and installing the system


Software engineering dkt311

Cont.

  • Managing the software configuration

    • Identifying the components

    • All software engenderers must participate for their components.

  • Managing the process

    • Estimate the cost of the system

    • Planning


Object orientation oo

Object Orientation (OO)

?

  • In it is very common name OOP

    • Object oriented programming

  • Abstraction “software less complex”

  • Combines procedural abstraction with data abstraction?

  • Class and objects

  • Instances variables

  • Methods, operations and polymorphism

  • Inheritance

?

?

?


Software engineering dkt311

?


Abstraction

Abstraction

  • Data abstraction

    • Records and structures

    • Entity description

  • Procedural abstraction

    • Function and procedure

    • Action description

OOP is:

The object oriented paradigm is approach to the solution of problems in which all computations are performed in the context of object. The objects are instances of programming constructs, normally called class, which are data abstractions and which contain procedural abstractions that operate on the object.


Class object

Class & Object

  • Represents the abstracted entity into:

    • Properties

      • To describe the current state.

      • (what is your car color?)

    • Behavior

      • The acts and reacts of the object.

      • (I may change my car color..)

  • Class is a software module that represents and defines a set of similar objects.

  • Object is a chunk of structure data in a running software.

    Lets look at some examples…


Human as a class

Human as a class


Software engineering dkt311

Accounting system


Instances variables

Student

Name:

Id:

School:

Grade:

Change school.

Change course.

Withdraw.

Instances variables

  • Objects are class’s instance

  • Example:

Mohamed

08998

Computer

B

Name

Attributes

methods


Software engineering dkt311

Ex.

  • General motors

  • Boeing 777

  • Mary smith

  • Board game

  • University course SEG 2100

  • The game of chess between tom and jane

  • Automobile company

  • Chess

  • Airplane

  • The car with serial number WQH 8062


Methods operations and polymorphism

Methods, operations and polymorphism

  • Method = function, procedure

    • It used to implement the behavior of class

  • Operation

    • High level procedural abstraction

    • To specify type of behavior

  • Polymorphism

    • Is a property of object oriented software by which an abstract operation may be performed in different ways, typically in different classes.


Polymorphism

Polymorphism

  • Example:

    • Bank interest

      • Average daily balance

      • Minimum daily balance

  • Can you give another example….

    • Car

    • Student


Inheritance

Inheritance

  • Classes with common attributes

    • To avoid duplication

    • Super class contains the common attributes

Inheritance is the implicit possession by a subclass of features defined in the super class. Feature include variables and methods.


Software engineering dkt311

  • Any question.

  • Thank you…..


Questions for this lectures

Questions for this lectures

  • Define the following terms:

    • Software engineering(IEEE, Canadian Standards Association)

    • Software

    • The differences between software and software engineering?

    • Object, Class, polymorphism, inheritance.

    • Stockholders

    • Software engineering quality


Software engineering dkt311

  • Describe the role of each stockholder in a software engineering project?

  • Draw a class box for each of the following stating the class name, attributes, and methods:

    • Cars

    • Students

    • Server

    • Human

    • Home


Software engineering dkt311

  • In example project there are two classes namely (Human, student, lecturer, child), draw a diagram showing the inheritance relationship between these classes.


  • Login