Software Engineering Object Oriented Design

Posted on  by 

Software Engineering Notes: Download Software Engineering Notes Pdf for B.tech. We provide B.tech Software Engineering study materials to B.Tech student with free of cost and it can download easily and without registration need. You can Check Software Engineering of B.Tech Subjects Study Materials and Lecture Notes with Syllabus and Important Questions Below. From the following B.tech Software Engineering Notes (సాఫ్ట్‌వేర్ ఇంజనీరింగ్), you can get the complete Study Material in Single Download Link.

Also, Read The following links for More Information

They are a lot,i will mention some of them:. Code Reuse and Recycling: Objects created for Object Oriented Programs can easily be reused in other programs. Encapsulation (part 1): Once an Object is created, knowledge of its implementation is n. I have been trying to learn Object Oriented Design, but I find it very difficult to decide where to put behavior that deals with more than one type of object. For example, I am building a REST API. Thanks for contributing an answer to Software Engineering Stack Exchange!

Software Engineering Notes Pdf for CSE

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. Custom – developed for a single customer according to their specifications. New software can be created by developing new programs, configuring generic software systems or reusing existing software.

Introduction to Software Engineering

Object Oriented Design In Software Engineering Slideshare

The term software engineering is composed of two words, software and engineering. Software is more than just a program code. A program is an executable code, which serves some computational purpose. Software is considered to be a collection of executable programming code, associated libraries, and documentation. Software, when made for a specific requirement is called software product. Engineering, on the other hand, is all about developing products, using well-defined, scientific principles and methods. So, we can define software engineering as an engineering branch associated with the development of software products using well-defined scientific principles, methods, and procedures. The outcome of software engineering is an efficient and reliable software product.

Software Engineering Easy Notes Pdf

Software Engineering Notes for CSE
Software engineering notes for CSE pdf
Software engineering lecture notes pdf Download
Software engineering lecture notes pptDownload
Software engineering Question Paper PdfDownload

List of Software Engineering Reference Books- 2nd Year

  • Software Engineering A practitioner’s Approach, Roger S. Pressman, Seventh Edition McGraw-Hill International Edition.
  • Fundamentals of Software Engineering, Rajib Mall, Third Edition, PHI.
  • Software Engineering, Ian Sommerville, Ninth edition, Pearson education
  • The Software Engineering: A Primer, Waman S Jawadekar, Tata McGraw-Hill, 2008
  • Software Engineering, A Precise Approach, PankajJalote, Wiley India,2010.
  • The Software Engineering, Principles, and Practices, Deepak Jain, Oxford University Press.
  • Software Engineering1: Abstraction and modeling, Diner Bjorner, Springer International edition, 2006.

Software Engineering Syllabus – 1st semester

UNIT-I:

Software and Software Engineering: The Nature of Software, The Unique Nature of WebApps, Software Engineering, Software Process, Software Engineering Practice, Software Myths. Process Models: A Generic Process Model, Process Assessment and Improvement, Prescriptive Process Models, Specialized Process Models, The Unified Process, Personal and Team Process Models, Process Terminology, Product and Process.

UNIT-II:

Requirements Analysis And Specification: Requirements Gathering and Analysis, Software Requirement Specification (SRS), Formal System Specification. Software Design: Overview of the Design Process, How to Characterise of a Design?, Cohesion
and Coupling, Layered Arrangement of Modules, Approaches to Software Design

UNIT – III:

Function-Oriented Software Design: Overview of SA/SD Methodology, Structured Analysis, Developing the DFD Model of a System, Structured Design, Detailed Design, Design Review, an overview of Object Oriented design. User Interface Design: Characteristics of Good User Interface, Basic Concepts, Types of User Interfaces, Fundamentals of Component-based GUI Development, A User Interface Design Methodology.

UNIT – IV:
Notation

Coding And Testing: Coding, Code Review, Software Documentation, Testing, Unit Testing, Black-Box Testing, White-Box Testing, Debugging, Program Analysis Tool, Integration Testing, Testing Object-Oriented Programs, System Testing, Some General Issues Associated with Testing

UNIT – V:

Software Reliability And Quality Management: Software Reliability, Statistical Testing, Software Quality, Software Quality Management System, ISO 9000, SEI Capability Maturity
Model. Computer-Aided Software Engineering: Case and its Scope, Case Environment, Case Support in Software Life Cycle, Other Characteristics of Case Tools, Towards Second Generation CASE Tool, Architecture of a Case Environment

UNIT – VI:

Software Maintenance: Software maintenance, Maintenance Process Models, Maintenance Cost, Software Configuration Management. Software Reuse: what can be Reused? Why almost No Reuse So Far? Basic Issues in Reuse Approach, Reuse at Organization Level.

OUTCOMES:
Software Engineering Notes: Define and develop a software project from requirement gathering to implementation. Obtain knowledge about the principles and practices of software engineering. Focus on the fundamentals of modeling a software project. Obtain knowledge about estimation and maintenance of software systems

Software Engineering Review Questions List

  • What is the Advantage of Prototype Model.?
  • What is functional and nonfunctional Software requirements?
  • Explain What is Code and Code Review.?
  • Describe the prototype model with a diagram.
  • What are the advantage and disadvantages of the Spiral model?
  • Explain What is Black Box Testing?
  • What is Code and code review?
  • Describe the agile model.
  • Explain What is software requirement specification (SRS)?
  • Describe SEI CMM?
  • What is the software Reengineering process?
  • Explain What is Object Oriented Design and Describe its important concepts of Object-Oriented Design
  • What are Cohesion and coupling?
  • Explian cyclomatic complexity measure? Describe an example.
  • What is software reusability?
  • What is client-server technology? Describe three tiers of Client-server architecture with a suitable example.
  • What is Service-oriented architecture (SOA) and Describe its
    advantages and disadvantages.
  • Explain What is the advantage and disadvantages of Black Box Testing.?
  • What are the different types of maintenance?
  • Explain What is a software Crisis?
  • What is SCRUM?
  • Draw the diagram of the SPIRAL model.
  • What is the command-line interface (CLI)?
  • What are the components of DFD?

Buy Software Engineering Books for 2nd year Online at Amazon.in

Sale Reliability and Safety Engineering (Springer Series in Reliability Engineering)
  • Ajit Kumar Verma, Srividya Ajit, Durga Rao Karanki
  • Springer Nature
  • Edition no. 2nd ed. 2016 (10/09/2015)
  • Hardcover: 571 pages
Computational Methods in Chemical Engineering with Maple
  • Springer
  • Ralph E. White, Venkat R. Subramanian
  • Springer
  • Edition no. 2010 (04/14/2010)
  • Hardcover: 860 pages
Sale Software Defined Radios: From Smart(er) to Cognitive (Signals and Communication Technology)
  • Sofie Pollin, Michael Timmers, Liesbet Van der Perre
  • Springer
  • Edition no. 2011 (05/29/2013)
  • Paperback: 140 pages
Sale Software and Data for Practical Astronomers: The Best of the Internet (The Patrick Moore Practical Astronomy Series)
  • Springer
  • David Ratledge
  • Springer
  • Edition no. 1999 (11/18/1998)
  • Paperback: 184 pages
Sale Engineering Quality Software: A Review of Current Practices, Standards and Guidelines including New Methods and Development Tools
  • Engineering Quality Software A Review of Current Practices Standards and Guidelines including New Methods and Development Tools
  • D.J. Smith, K.B. Wood
  • Springer
  • Edition no. 2nd ed. 1989. Softcover reprint of the original 2nd ed. 1989 (10/04/2011)
  • Paperback: 284 pages
Sale Computer- Aided Design in Power Engineering: Application of Software Tools
  • Springer
  • Zlatan Stojkovic
  • Springer
  • Edition no. 2012 (11/06/2012)
  • Hardcover: 418 pages

We provided the Download Links to Software Engineering Notes Pdf for B.tech- Download Study materials, Books, Lecture Notes, for Engineering Students. Any University student can download given B.Tech Notes and Study material or you can buyB.Tech 2nd Year Software Engineering Books at Amazon also. Share this article with your classmates and friends so that they can also follow Latest Study Materials and Notes on Engineering Subjects. For any query regarding on Software Engineering Pdf Contact us via the comment box below.

📢 Get Latest Exam Updates via E-mail ✉

Note : Submit your name, email, state and updates category below.
Software development
Core activities
Paradigms and models
Methodologies and frameworks
Supporting disciplines
Practices
Tools
Standards and Bodies of Knowledge
Glossaries

Object-oriented analysis and design (OOAD) is a popular technical approach for analyzing and designing an application, system, or business by applying object-oriented programming, as well as using visual modeling throughout the development life cycles to faster better stakeholder communication and product quality.

According to the popular guide Unified Process, OOAD in modern software engineering is best conducted in an iterative and incremental way. Iteration by iteration, the outputs of OOAD activities, analysis models for OOA and design models for OOD respectively, will be refined and evolve continuously driven by key factors like risks and business value.

History[edit]

In the early days of object-oriented technology before the mid-1990s, there were many different competing methodologies for software development and object-oriented modeling, often tied to specific Computer Aided Software Engineering (CASE) tool vendors. No standard notations, consistent terms and process guides were the major concerns at the time, which degraded communication efficiency and lengthened learning curves.

Some of the well-known early object-oriented methodologies were from and inspired by gurus such as Grady Booch, James Rumbaugh, Ivar Jacobson (the Three Amigos), Robert Martin, Peter Coad, Sally Shlaer, Stephen Mellor, and Rebecca Wirfs-Brock.

In 1994, the Three Amigos of Rational Software started working together to develop the Unified Modeling Language (UML). Later, together with Philippe Kruchten and Walker Royce (eldest son of Winston Royce), they have led a successful mission to merge their own methodologies, OMT, OOSE and Booch method, with various insights and experiences from other industry leaders into the Rational Unified Process (RUP), a comprehensive iterative and incremental process guide and framework for learning industry best practices of software development and project management.[1] Since then, the Unified Process family has become probably the most popular methodology and reference model for object-oriented analysis and design.

Software Engineering Object Oriented Design

Object Oriented Design Paradigm In Software Engineering

Overview[edit]

The software life cycle is typically divided up into stages going from abstract descriptions of the problem to designs then to code and testing and finally to deployment. The earliest stages of this process are analysis and design. The analysis phase is also often called 'requirements acquisition'.

Software Engineering Object Oriented Design
The Waterfall Model.
OOAD is conducted in an iterative and incremental manner, as formulated by the Unified Process.

In some approaches to software development—known collectively as waterfall models—the boundaries between each stage are meant to be fairly rigid and sequential. The term 'waterfall' was coined for such methodologies to signify that progress went sequentially in one direction only, i.e., once analysis was complete then and only then was design begun and it was rare (and considered a source of error) when a design issue required a change in the analysis model or when a coding issue required a change in design.

The alternative to waterfall models are iterative models. This distinction was popularized by Barry Boehm in a very influential paper on his Spiral Model for iterative software development. With iterative models it is possible to do work in various stages of the model in parallel. So for example it is possible—and not seen as a source of error—to work on analysis, design, and even code all on the same day and to have issues from one stage impact issues from another. The emphasis on iterative models is that software development is a knowledge-intensive process and that things like analysis can't really be completely understood without understanding design issues, that coding issues can affect design, that testing can yield information about how the code or even the design should be modified, etc.[2]

Although it is possible to do object-oriented development using a waterfall model, in practice most object-oriented systems are developed with an iterative approach. As a result, in object-oriented processes 'analysis and design' are often considered at the same time.

The object-oriented paradigm emphasizes modularity and re-usability. The goal of an object-oriented approach is to satisfy the 'open closed principle'. A module is open if it supports extension, or if the module provides standardized ways to add new behaviors or describe new states. In the object-oriented paradigm this is often accomplished by creating a new subclass of an existing class. A module is closed if it has a well defined stable interface that all other modules must use and that limits the interaction and potential errors that can be introduced into one module by changes in another. In the object-oriented paradigm this is accomplished by defining methods that invoke services on objects. Methods can be either public or private, i.e., certain behaviors that are unique to the object are not exposed to other objects. This reduces a source of many common errors in computer programming.[3]

The software life cycle is typically divided up into stages going from abstract descriptions of the problem to designs then to code and testing and finally to deployment. The earliest stages of this process are analysis and design. The distinction between analysis and design is often described as 'what vs. how'. In analysis developers work with users and domain experts to define what the system is supposed to do. Implementation details are supposed to be mostly or totally (depending on the particular method) ignored at this phase. The goal of the analysis phase is to create a functional model of the system regardless of constraints such as appropriate technology. In object-oriented analysis this is typically done via use cases and abstract definitions of the most important objects. The subsequent design phase refines the analysis model and makes the needed technology and other implementation choices. In object-oriented design the emphasis is on describing the various objects, their data, behavior, and interactions. The design model should have all the details required so that programmers can implement the design in code.[4].

Object-oriented analysis[edit]

The purpose of any analysis activity in the software life-cycle is to create a model of the system's functional requirements that is independent of implementation constraints.

The main difference between object-oriented analysis and other forms of analysis is that by the object-oriented approach we organize requirements around objects, which integrate both behaviors (processes) and states (data) modeled after real world objects that the system interacts with. In other or traditional analysis methodologies, the two aspects: processes and data are considered separately. For example, data may be modeled by ER diagrams, and behaviors by flow charts or structure charts.


Common models used in OOA are use cases and object models. Use cases describe scenarios for standard domain functions that the system must accomplish. Object models describe the names, class relations (e.g. Circle is a subclass of Shape), operations, and properties of the main objects. User-interface mockups or prototypes can also be created to help understanding.[5]


During object-oriented design (OOD), a developer applies implementation constraints to the conceptual model produced in object-oriented analysis. Such constraints could include the hardware and software platforms, the performance requirements, persistent storage and transaction, usability of the system, and limitations imposed by budgets and time. Concepts in the analysis model which is technology independent, are mapped onto implementing classes and interfaces resulting in a model of the solution domain, i.e., a detailed description of how the system is to be built on concrete technologies.[6]

Important topics during OOD also include the design of software architectures by applying architectural patterns and design patterns with object-oriented design principles.

Object-oriented modeling[edit]

Object-oriented modeling (OOM) is a common approach to modeling applications, systems, and business domains by using the object-oriented paradigm throughout the entire development life cycles. OOM is a main technique heavily used by both OOD and OOA activities in modern software engineering.

Object-oriented modeling typically divides into two aspects of work: the modeling of dynamic behaviors like business processes and use cases, and the modeling of static structures like classes and components. OOA and OOD are the two distinct abstract levels (i.e. the analysis level and the design level) during OOM. The Unified Modeling Language (UML) and SysML are the two popular international standard languages used for object-oriented modeling.[7]

The benefits of OOM are:

Efficient and effective communication

Users typically have difficulties in understanding comprehensive documents and programming language codes well. Visual model diagrams can be more understandable and can allow users and stakeholders to give developers feedback on the appropriate requirements and structure of the system. A key goal of the object-oriented approach is to decrease the 'semantic gap' between the system and the real world, and to have the system be constructed using terminology that is almost the same as the stakeholders use in everyday business. Object-oriented modeling is an essential tool to facilitate this.

Useful and stable abstraction

Modeling helps coding. A goal of most modern software methodologies is to first address 'what' questions and then address 'how' questions, i.e. first determine the functionality the system is to provide without consideration of implementation constraints, and then consider how to make specific solutions to these abstract requirements, and refine them into detailed designs and codes by constraints such as technology and budget. Object-oriented modeling enables this by producing abstract and accessible descriptions of both system requirements and designs, i.e. models that define their essential structures and behaviors like processes and objects, which are important and valuable development assets with higher abstraction levels above concrete and complex source code.

See also[edit]

  • ATLAS Transformation Language (ATL)
  • Class-Responsibility-Collaboration card (CRC cards)
  • Domain Specific Language (DSL)
  • Domain-specific modelling (DSM)
  • Meta-Object Facility (MOF)
  • Model-driven engineering (MDE)
  • Model-based testing (MBT)
  • Unified Modeling Language (UML)
  • XML Metadata Interchange (XMI)

{{div col end}}

References[edit]

  1. ^'Rational Unified Process Best Practices for Software Development Teams'(PDF). Rational Software White Paper (TP026B). 11/01. Retrieved 12 December 2013.Check date values in: |date= (help)
  2. ^Boehm B, 'A Spiral Model of Software Development and Enhancement', IEEE Computer, IEEE, 21(5):61-72, May 1988
  3. ^Meyer, Bertrand (1988). Object-Oriented Software Construction. Cambridge: Prentise Hall International Series in Computer Science. p. 23. ISBN0-13-629049-3.
  4. ^Jacobsen, Ivar; Magnus Christerson; Patrik Jonsson; Gunnar Overgaard (1992). Object Oriented Software Engineering. Addison-Wesley ACM Press. pp. 15, 199. ISBN0-201-54435-0.
  5. ^Jacobsen, Ivar; Magnus Christerson; Patrik Jonsson; Gunnar Overgaard (1992). Object Oriented Software Engineering. Addison-Wesley ACM Press. pp. 77–79. ISBN0-201-54435-0.
  6. ^Conallen, Jim (2000). Building Web Applications with UML. Addison Wesley. p. 147. ISBN0201615770.
  7. ^Jacobsen, Ivar; Magnus Christerson; Patrik Jonsson; Gunnar Overgaard (1992). Object Oriented Software Engineering. Addison-Wesley ACM Press. pp. 15, 199. ISBN0-201-54435-0.

Further reading[edit]

  • Grady Booch. 'Object-oriented Analysis and Design with Applications, 3rd edition':http://www.informit.com/store/product.aspx?isbn=020189551X Addison-Wesley 2007.
  • Rebecca Wirfs-Brock, Brian Wilkerson, Lauren Wiener. Designing Object Oriented Software. Prentice Hall, 1990. [A down-to-earth introduction to the object-oriented programming and design.]
  • A Theory of Object-Oriented Design: The building-blocks of OOD and notations for representing them (with focus on design patterns.)
  • Martin Fowler. Analysis Patterns: Reusable Object Models. Addison-Wesley, 1997. [An introduction to object-oriented analysis with conceptual models]
  • Bertrand Meyer. Object-oriented software construction. Prentice Hall, 1997
  • Craig Larman. Applying UML and Patterns – Introduction to OOA/D & Iterative Development. Prentice Hall PTR, 3rd ed. 2005.,mnnm,n,nnn
  • Setrag Khoshafian. Object Orientation.
  • Ulrich Norbisrath, Albert Zündorf, Ruben Jubeh. Story Driven Modeling. Amazon Createspace. p. 333., 2013. ISBN9781483949253.

External links[edit]

Wikiversity has learning resources about Object Oriented Software Design
  • Article Object-Oriented Analysis and Design with UML and RUP an overview (also about CRC cards).
  • Applying UML – Object Oriented Analysis & Design tutorial
  • OOAD & UML Resource website and Forums – Object Oriented Analysis & Design with UML.
  • Software Requirement Analysis using UML article by Dhiraj Shetty.
  • Article Object-Oriented Analysis in the Real World
Retrieved from 'https://en.wikipedia.org/w/index.php?title=Object-oriented_analysis_and_design&oldid=917536946'

Coments are closed