9/19/2021 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 CSE304 Object Oriented Software Engineering Week 1 Dr. Iftikhar Azim Niaz ianiaz@comsats.edu.pk ianiaz@yahoo.com Dr. Iftikhar Azim Niaz ● B.Sc (Maritime Studies) 1988 ● M.Sc (Computer Science) 1994 ● MBA (Marketing) 1999 ● Ph.D (Engineering) 2005 ● PGD (Professional Ethics and Teaching Methodology) 2010 Pakistan Marine Academy, President’s Gold Medalist (Best All Round Cadet) Karachi University Quaid-i-Azam University (QAU), Islamabad Allama Iqbal Open University (AIOU), Islamabad University of Tsukuba, Japan Riphah International University, Islamabad 2 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 1 2 9/19/2021 Dr. Iftikhar Azim Niaz ● Deck Officer Feb 1989 – Feb 1991 ● System Analyst Mar 1994 – Mar 1995 ● Deputy Manager Apr 1995 – Aug 1995 ● Lecturer Sep 1995 – Jan 2007 ● Head of Department Jan 2007 – Feb 2012 ● Assistant Professor Feb 2012 to Date Atlas Shipmanagement Limited, Hong Kong Deutsche Telepost Consultants, Islamabad National Institute of Electronics, Islamabad Quaid-i-Azam University, Islamabad Riphah International University, Islamabad COMSATS University Islamabad (CUI), Islamabad Campus Formerly COMSATS Institute of Information Technology (CIIT) CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 3 Why ? Why are you studying the course CSE304 Object Oriented Software Engineering? CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 3 4 4 9/19/2021 Are these your motivations? ● Motivations is a feeling of enthusiasm, interest, or commitment that makes somebody want to do something, or something that causes such a feeling Encarta Dictionary ● Because many people take it ● Just a random choice, no particular reasons ● A required course ● I failed CSE304 before; ● Want to be taught by a tough instructor ● More … CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 5 I believe your REAL motivation is ... I take it because I am interested CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 5 6 6 9/19/2021 Course Details ● Course Code: CSE304 ● Course Title: Object Oriented Software Engineering ● Credit Hours: 4 (3 + 1) ● Course Pre-Requisite CSE291 Introduction to Software Engineering CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 7 Instructor Information ● Name: Dr. Iftikhar Azim Niaz ● E-Mail: ianiaz@comsats.edu.pk ianiaz@yahoo.com 8 ● Contact No. 051-90495311 ● Office Location: Room 31, (First Floor), Faculty Block I (above Faculty Cafeteria) ● Office Hours: 1000 -1130 (Wednesday) CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 7 8 Course Description ● Introduction to Object Oriented Software Engineering, Modeling with UML, Project Management, ● Requirements Determination, Business Process and Functional Modeling, Structural Modeling, Behavioral Modeling ● Moving from Analysis to System Design: Class and Method Design, Data Management Layer design, Human-computer Interaction Layer Design, Physical Architecture Layer Design, ● Mapping Models to Code, Software Construction, Installation and operations, Software Life Cycle 9/19/2021 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 9 Textbook and Reference Books ● Textbook System Analysis & Design: An Object-Oriented Approach with UML, 5th Edition, Alan Dennis, Barbara H. Wixom and David Tegarden, John Wiley & Sons, 2015 ● Recommended Books 1. Object Oriented Software Engineering: An Agile Unified Methodology, David C Kung, McGraw Hill, 2014 2. Object Oriented Software Engineering: Using UML, Patterns, and Java, Bernd Bruegge, Allen H. Dutoit, Prentice Hall, 2010 10 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 9 10 CSE304 Objbect‐Oriented Software Engineering Week 1 9/19/2021 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) Textbook and Reference Book 11 Course Assessments Evaluation methods Theory Weight (%)[T] Lab Weight (%)[L] Quizzes (4) 15 15 Assignments (4) 10 10 10 + 15 10+15 Terminal Exam 50 50 Total 100 100 T = (T/100) *75 L = (L/100) *25 Sessional Exams(I and II) Total (T+L) CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 11 12 12 9/19/2021 Course Outline and Contents (1 of 4) Lecture Unit Topics Covered Textbook Section 1 1 Introduction to System Analysis and Design, system Development Methodologies Dennis: Ch01 2 1 3 2 4 2 5 3 6 3 Requirement Gathering Techniques, Documentation Techniques 7 4 An Overview of UML: Use Case Diagram, Class Diagrams, Interaction Diagrams, Activity Diagrams Web Sources 8 4 State Diagrams, Component Diagram, Package Diagram, Deployment Diagram Web Sources Characteristics of Object-Oriented Systems, Object Oriented Systems Analysis and Design Project Identification, Feasibility Analysis, Traditional Project Management Tools Project Effort Estimation, Creating and managing the Work Plan, Project Staffing, Environment and Infrastructure Management Requirements Determination, Requirement Analysis Strategies, Requirements Dennis: Ch01 Dennis: Ch02 Dennis: Ch02 Dennis: Ch03 Dennis: Ch03 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 13 Course Outline and Contents (2 of 4) Lecture Unit 9 4 10 4 Topics Covered Business Process Identification with Use Cases and Use Case Diagrams, Documentation with Use cases Business Process Modeling with Activity Diagrams, Verifying and Validating business processes and functional Models. Dennis: Ch04 Dennis: Ch04 Sessional 1 11 14 Textbook Section 12 4 Domain Modeling 13 5 Structural Models Object Identification, CRC Cards 14 5 15 5 16 5 Class diagrams, Creating Structural Models using CRC and Class diagrams, Verifying and Validating Structural Models Behavioral Models, UML Sequence diagrams and Communication Diagrams Behavioral State Machines, Crude analysis, Verifying and validating Behavioral Model Kung Ch 05 Dennis: Ch05 Dennis: Ch05 Dennis: Ch 06 Dennis: Ch 06 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 13 14 9/19/2021 Course Outline and Contents (3 of 4) Lecture Unit Topics Covered Textbook Section 17 5 Evolving the Analysis models to design models, Package and Package Diagrams Dennis: Ch07 18 6 Design Strategies, Acquisition strategy Dennis: Ch07 19 6 Class and Method Design, Design Criteria Dennis: Ch08 20 6 Object design activities, Method specifications Dennis: Ch08 Sessional 2 21 22 6 Data Management Layer design, Mapping problem domain objects to Object Persistence Formats Dennis: Ch09 23 6 Optimizing RDBMS-based object storage, Designing data access and manipulation classes Dennis: Ch09 24 6 Human-Computer Interaction Layer Design, User interface design process, Navigation design, Input design, output design Dennis: Ch10 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 15 Course Outline and Contents (4 of 4) Lecture Unit 25 6 26 7 27 7 28 8 29 8 30 8 31 8 32 1-8 Topics Covered Mobile computing and user interface design, Social media and UI design, Games multi-dimensional information visualization and immersive environments Elements of Physical architecture layer, Cloud Computing, ubiquitous computing and IoT, Green IT Infrastructure design, Hardware and System software specifications, NFRs and Physical architecture layer design Software construction and implementation, Managing Programming Developing documentation, designing tests Installation and operations, Cultural issues and IT Adoption, Conversion Strategies Change Management, Post-Implementation Activities, Revision Terminal Examination 16 Textbook Section Dennis: Ch10 Dennis: Ch11 Dennis: Ch11 Dennis: Ch12 Dennis: Ch12 Dennis: Ch13 Dennis: Ch13 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 15 16 9/19/2021 Course Learning Outcomes (CLOs) CLO Description PLO C1 Explain basic concepts of object-oriented software engineering using UML. j-3 C2 C3 C4 Explain fundamentals of software project management and software life cycle methodologies. Develop OO analysis and design models for problems based on real world scenarios. c-2 i-1 Develop a “real world” software system prototype using Object Oriented Software j-3, k-2 Engineering. CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 17 Program Learning Outcomes (PLOs) PLO 18 Description c-2 Design a computer-based system, process, component, or program to meet desired needs. i-1 Ability to use modern techniques or skills necessary for engineering practice. j-3 Use of software engineering theory in the modeling and design of computer-based systems. k-2 Ability to apply techniques and skills of the discipline to broadly defined engineering technology activities. CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 17 18 9/19/2021 Policy and Procedures ● Attendance Policy: Every student must attend 80% of the lectures delivered in this course and 80% of the practical/laboratory work prescribed for the respective courses. The students falling short of required percentage of attendance of lectures/seminars/practical/laboratory work, etc., shall not be allowed to appear in the terminal examination of this course and shall be treated as having failed this course. ● Grading Policy: The minimum pass marks for each course shall be 50%. Students obtaining less than 50% marks in any course shall be deemed to have failed in that course. The correspondence between letter grades, credit points, and percentage marks at CUI shall be as follows: Grade A AB+ B BC+ C CD F Marks 90 - 100 85 - 89 80 - 84 75 - 79 70 - 74 65 - 69 60 - 64 55 - 59 50 - 54 <50 Cr. Point 4.0 3.7 3.3 3.0 2.7 2.3 2.0 1.7 1.3 0.0 ● Missing Exam: No makeup exam will be given for final exam under any circumstance. When a student misses Sessional 1 or Sessional 2 for a legitimate reason (such as medical emergencies), his grade for this exam will be determined based on the Department policy. Further, the student must provide an official excuse within one week of the missed exam. ● Academic Integrity: All CUI policies regarding ethics apply to this course. The students are advised to discuss their grievances/problems with their counsellors or course instructor in a respectful manner. ● Plagiarism Policy: Plagiarism, copying and other anti-intellectual behavior are prohibited by the university regulations. Violators may have to face serious consequences. CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 19 A Nice Quote Want to get something in life Always think positive You will definitely get the thing you want CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 19 20 20 9/19/2021 A Nice Saying I keep 6 honest serving men. They taught me all I knew. Their names are: WHAT and WHY and WHEN and HOW and WHERE and WHO. (R. Kipling) And believe me, on the road of learning, these are your best companions. CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 21 Five Tips to Success ● Work Hard ● Try More exercises and more practice ● Do the work and assignments by yourself CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 21 22 22 Five Tips to Success ● Be patient with the Machine ● If you really need that, do it quietly 9/19/2021 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 23 Is the same situation with you? CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 23 24 24 First Lesson Don’t care whether: your_question == substantial OR stupid if (your_question == substantial) the class will be praising you else if (your_question == stupid) the class might fool you for a couple of minutes else if (you_don’t_ask_question) you will remain fool for your entire life time Conclusion: Don’t hesitate to ask the question 9/19/2021 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 25 DO’s and DON’Ts ● DO’s Enter or Leave the classroom without disturbing me Always talk to me Raise questions when something is not clear Raise hands if you have some question ● DON’Ts Use of Mobile Phone is STRICTLY Prohibited Fine of Rs. 100 if the phone is used during class timings No chatting / talking with each other No disturbance to teacher during class timings Marked ABSENT if remained absent for more than half of class time 26 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 25 26 Chapter 1: Introduction to Systems Analysis and Design 28 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) Let’s start the Course CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 9/19/2021 27 27 28 Topics Covered ● Systems development life cycle (SDLC) Identify the four phases How it came about Methodology alternatives ● Team roles & skill sets ● Object-Oriented systems characteristics ● Object-Oriented Systems Analysis & Design (OOSAD) ● The Unified Process & its extensions ● The Unified Modeling Language (UML) 9/19/2021 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 29 Introduction to SDLC ● The systems development life cycle (SDLC) is the process of understanding how an information system (IS) can support business needs by designing a system, building it, and delivering it to users ● Why do we need a formal process? Failures occur (too) often Creating systems is not intuitive Projects are late, over budget or delivered with fewer features than planned ● The System Analyst is the key person 30 Designs a system to add value Must understand the business processes Job is rewarding, yet challenging Requires specific skill sets CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 29 30 System Development Life Cycle (SDLC) 9/19/2021 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 31 The SDLC Process ● The process consists of four (4) phases Planning Analysis Design Implementation ● Each phase consists of a series of steps which rely upon techniques that produces documents and files that provide understanding about the project ● Each phase is documented (deliverables) ● Phases are executed sequentially, incrementally, iteratively or in some other pattern 32 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 31 32 Question to be Answered ● Planning phase Why should we build this system? What value does it provide? How long will it take to build? ● Analysis phase Who will use it? What should the system do for us? Where & when will it be used? ● Design phase How should we build it? 9/19/2021 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 33 SDLC Phase 1: The Planning Phase 1. Project Initiation The system’s business value to the organization is identified Develop/receive a system request. It presents a brief summary of a business need, and it explains how a system that support the need will create business value Conduct a feasibility analysis Steering/Approval Committee decides whether the project should be undertaken or not 2. Project Management Project manager develops the work plan Staff the project Puts techniques in place to monitor & control the project through the entire SDLC Deliverable of this phase is the Project Plan 34 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 33 34 SDLC Phase 2: The Analysis Phase 1. Develop an analysis strategy Model the current system (as-is system) and its problems Formulate the new system (to-be system) 2. Gather the requirements Develop a system concept Create a business model to represent: Business data Business processes 3. Develop a system proposal which includes analyses, system concept and models 9/19/2021 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 35 SDLC Phase 3: The Design Phase 1. Develop a design strategy In-house software development Outsource to another firm Buy an existing software (COTS) 2. Design architecture and user interfaces 3. Develop databases and file specifications 4. Develop the program design to specify: What programs to write What each program will do CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 35 36 36 SDLC Phase 4: The Implementation Phase 1. Construct the system Build it (write the programming code) Test it 2. Install system Replacing the old system with the new one. Train the users to how to use the new system and help manage the changes caused by the new system 3. Support the system (maintenance) 9/19/2021 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 37 SDLC: Methodologies ● Methodology: a formalized approach to implementing the SDLC (i.e. it is a list of steps and deliverables) ● Categories Process oriented Data centered Object-oriented Structured Rapid action development Agile development CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 37 38 38 Classes of Methodologies (1/3) ● Structured Development Waterfall Development Parallel Development 9/19/2021 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 39 Classes of Methodologies (2/3) ● Rapid Application Development Phased Prototyping CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 39 40 40 Classes of Methodologies (2/3) ● Rapid Application Development Throw Away Prototyping 9/19/2021 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 41 Classes of Methodologies (3/3) ● Agile Development eXtreme Programming Scrum ● All agile development methodologies are based on the agile manifesto and a set of twelve principles ● The emphasis of the manifesto is to focus the developers on the 42 working conditions of the developers, the working software, the customers, and addressing changing requirements instead of focusing on detailed systems development processes, tools, all inclusive documentation, legal contracts, and detailed plans CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 41 42 12 Principles of Agile Development (1/2) 1. Soft ware is delivered early and continuously through the development process, satisfying the customer 2. Changing requirements are embraced regardless of when they occur in the development process 3. Working software is delivered frequently to the customer 4. Customers and developers work together to solve the business problem 5. Motivated individuals create solutions; provide them the tools and environment they need and trust them to deliver 6. Face-to-face communication within the development team is the most efficient and effective method of gathering requirements 9/19/2021 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 43 12 Principles of Agile Development (2/2) 7. The primary measure of progress is working, executing software 8. Both customers and developers should work at a pace that is sustainable. That is, the level of work could be maintained indefinitely without any worker burnout 9. Agility is heightened through attention to both technical excellence and good design 10. Simplicity, the avoidance of unnecessary work, is essential 11. Self-organizing teams develop the best architectures, requirements, and designs 12. Development teams regularly reflect on how to improve their development processes 44 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 43 44 Selecting the Appropriate Development Methodology 9/19/2021 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 45 Selecting the Appropriate Development Methodology ● Clarity of User Requirements When the user requirements for a system are unclear, it is difficult to understand them by talking about them and explaining them with written reports Users normally need to interact with technology to really understand what a new system can do and how to best apply it to their needs RAD and agile methodologies are usually more appropriate when user requirements are unclear CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 45 46 46 Selecting the Appropriate Development Methodology ● Familiarity with Technology When the system will use new technology with which the analysts and programmers are not familiar, early application of the new technology in the methodology will improve the chance of success If the system is designed without some familiarity with the base technology, risks increase because the tools might not be capable of doing what is needed Throwaway prototyping-based methodologies are particularly appropriate if users lack familiarity with technology because they explicitly encourage the developers to develop design prototypes for areas with high risks Phased development-based methodologies create opportunities to investigate the technology in some depth before the design is complete Also, owing to the programming-centric nature of agile methodologies, both XP and Scrum are appropriate Although you might think prototyping-based methodologies are also appropriate, they are much less so because the early prototypes that are built usually only scratch the surface of the new technology. It is generally only after several prototypes and several months that the developers discover weaknesses or problems in the new technology 9/19/2021 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 47 Selecting the Appropriate Development Methodology ● System Complexity Complex systems require careful and detailed analysis and design Throwaway prototyping-based methodologies are particularly well suited to such detailed analysis and design but prototyping-based methodologies are not The traditional structured design-based methodologies can handle complex systems, but without the ability to get the system or prototypes into the users’ hands early on, some key issues may be overlooked Although phased development-based methodologies enable users to interact with the system early in the process, it is observed that project teams who follow these tend to devote less attention to the analysis of the complete problem domain than they might using other methodologies Finally, agile methodologies are a mixed bag when it comes to system complexity. If the system is going to be a large one, agile methodologies will perform poorly However, if the system is small to medium size, then agile approaches will be excellent. We rate them good on these criteria. 48 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 47 48 Selecting the Appropriate Development Methodology ● System Reliability System reliability is usually an important factor in system development; after all, who wants an unreliable system? However, reliability is just one factor among several. For some applications, reliability is truly critical (e.g., medical equipment, missile-control systems), whereas for other applications (e.g., games, Internet video) it is merely important Because throwaway prototyping methodologies combine detailed analysis and design phases with the ability for the project team to test many different approaches through design prototypes before completing the design, they are appropriate when system reliability is a high priority Prototyping methodologies are generally not a good choice when reliability is critical because it lacks the careful analysis and design phases that are essential for dependable systems Agile methods may be the best overall approach because of the heavy focus on testing, evolutionary and incremental identification of requirements, and iterative and incremental development. 9/19/2021 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 49 Selecting the Appropriate Development Methodology ● Short Time Schedule RAD-based and agile methodologies are excellent choices when timelines are short because they best enable the project team to adjust the functionality in the system based on a specific delivery date, and if the project schedule starts to slip, it can be readjusted by removing functionality from the version or prototype under development Waterfall-based methodologies are the worst choice when time is at a premium because they do not allow easy schedule changes CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 49 50 50 Selecting the Appropriate Development Methodology ● Schedule Visibility One of the greatest challenges in systems development is determining whether a project is on schedule This is particularly true of the structured design methodologies because design and implementation occur at the end of the project The RAD-based methodologies move many of the critical design decisions earlier in the project to help project managers recognize and address risk factors and keep expectations in check However, given the daily progress meetings associated with Agile approaches, schedule visibility is always on the proverbial front burner 9/19/2021 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 51 The System Analyst: Roles ● Business Analyst Focuses on the business issues ● Systems Analyst Focuses on the Information System (IS) issues ● Infrastructure Analyst Focuses on the technical issues ● Change Management Analyst Focuses on the people and management issues ● Project Manager Ensures that the project is completed on time and within budget CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 51 52 52 Basic Characteristics of Object Orientation ● Object-oriented systems focus on capturing the structure and behavior of information systems in little modules that encompass both data and process ● A class is the general template we use to defi ne and create specific instances, or objects. Every object is associated with a class ● An object is an instantiation of a class 9/19/2021 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 53 Basic Characteristics of Object Orientation ● Each object has attributes that describe information about the object, such as a patient’s name, birth date, address, and phone number ● Attributes are also used to represent relationships between objects; for example, there could be a department attribute in an employee object with a value of a department object that captures in which department the employee object works ● The state of an object is defined by the value of its attributes and its relationships with other objects at a particular point in time For example, a patient might have a state of new or current or former ● Each object also has behaviors. The behaviors specify what the object can do For example, an appointment object can probably schedule a new appointment, delete an appointment, and locate the next available appointment ● In object-oriented programming, behaviors are implemented as methods 54 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 53 54 Methods and Messages ● In object-oriented programming, behaviors are implemented as methods ● Methods implement an object’s behavior. A method is nothing more than an action that an object can perform ● Messages are information sent to objects to trigger methods. A message is essentially a function or procedure call from one object to another object For example, if a patient is new to the doctor’s office, the receptionist sends a create message to the application The patient class receives the create message and executes its create() method which then creates a new object: aPatient 9/19/2021 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 55 Encapsulation and Information Hiding ● Encapsulation is simply the combination of process and data into a single entity ● The principle of information hiding suggests that only the information required to use a software module be published to the user of the module ● Typically, this implies that the information required to be passed to the module and the information returned from the module are published ● Exactly how the module implements the required functionality is not relevant ● In object-oriented systems, combining encapsulation with the information-hiding principle supports treating objects as black boxes 56 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 55 56 Inheritance ● Inheritance is used to identify higher-level, or more general, classes of objects ● Common sets of attributes and methods can be organized into superclasses ● Typically, classes are arranged in a hierarchy whereby the superclasses, or general classes, are at the top and the subclasses, or specific classes, are at the bottom ● Subclasses inherit the appropriate attributes and methods from the superclasses above them. That is, each subclass contains attributes and methods from its parent superclass ● Inheritance makes it simpler to define classes 9/19/2021 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 57 Inheritance Advantage CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 57 58 58 Polymorphism and Dynamic Binding ● Polymorphism means that the same message can be interpreted differently by different classes of objects For example, if an artist sent the message Draw yourself to a square object, a circle object, and a triangle object, the results would be very different, even though the message is the same 9/19/2021 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 59 Polymorphism and Dynamic Binding ● Polymorphism is made possible through dynamic binding ● Dynamic, or late, binding is a technique that delays typing the object until run-time ● The specific method that is actually called is not chosen by the object-oriented system until the system is running ● This is in contrast to static binding ● In a statically bound system, the type of object is determined at compile-time. Therefore, the developer has to choose which method should be called instead of allowing the system to do it ● This is why most traditional programming languages have complicated decision logic based on the different types of objects in a system 60 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 59 60 Object-Oriented Systems Analysis & Design (OOSAD) ● Attempts to balance data and process ● Utilizes the Unified Modeling Language (UML) and the Unified Process ● Characteristics of OOAD: Use-case Driven Architecture Centric Iterative and Incremental 9/19/2021 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 61 Use Case Driven ● Use-case driven means that use cases are the primary modeling tools defining the behavior of the system ● A use case describes how the user interacts with the system to perform some activity, such as placing an order, making a reservation, or searching for information ● The use cases are used to identify and to communicate the requirements for the system to the programmers who must write the system ● Use cases are inherently simple because they focus on only one business process at a time, so developing models is much simpler 62 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 61 62 Architecture Centric ● Architecture-centric means that the underlying software architecture of the evolving system specification drives the specification, construction, and documentation of the system ● Modern object-oriented systems analysis and design approaches should support at least three (3) separate but interrelated architectural views of a system functional, static, and dynamic ● The functional or external view describes the behavior of the system from the perspective of the user ● The structural, or static, view describes the system in terms of attributes, methods, classes, and relationships ● The behavioral, or dynamic, view describes the behavior of the system in terms of messages passed among objects and state changes within an object 9/19/2021 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 63 Iterative and Incremental ● Modern object-oriented systems analysis and design (OOSAD) approaches emphasize iterative and incremental development that undergoes continuous testing and refinement throughout the life of the project ● This implies that the systems analysts develop their understanding of a user’s problem by building up the three architectural views little by little ● The systems analyst does this by working with the user to create a functional representation of the system under study ● Next, the analyst attempts to build a structural representation of the evolving system. ● Using the structural representation of the system, the analyst distributes the functionality of the system over the evolving structure to create a behavioral representation of the evolving system. ● As an analyst works with the user in developing the three architectural views of the evolving system, the analyst iterates over each of and among the views. 64 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 63 64 Iterative and Incremental ● That is, as the analyst better understands the structural and behavioral views, the analyst uncovers missing requirements or misrepresentations in the functional view. ● This, in turn, can cause changes to be cascaded back through the structural and behavioral views ● All three architectural views of the system are interlinked and dependent on each other ● As each increment and iteration is completed, a more complete representation of the user’s real functional requirements is uncovered 9/19/2021 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 65 OOSAD Benefits ● Concepts in the object-oriented approach enable analysts to break a complex system into smaller, more-manageable modules, work on the modules individually, and easily piece the modules back together to form an information system ● This modularity makes systems development easier to grasp, easier to share among members of a project team, and easier to communicate to users, who are needed to provide requirements and confirm how well the system meets the requirements throughout the systems development process ● By modularizing systems development, the project team actually is creating reusable pieces that can be plugged into other systems efforts or used as starting points for other projects ● Ultimately, this can save time because new projects don’t have to start completely from scratch 66 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 65 66 The Unified Process ● A specific methodology that maps out when and how to use the various UML techniques for object-oriented analysis and design ● A two-dimensional process consisting of phases and workflows Phases are time periods in development The phases are inception, elaboration, construction, and transition. Workflows are the tasks that occur in each phase Workflows include business modeling, requirements, analysis, design, implementation, test, deployment, configuration and change management, project management, and environment Activities in both phases & workflows will overlap 9/19/2021 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 67 The Unified Process CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 67 68 68 The Unified Process ● Inception Feasibility analyses performed Workflows vary but focus is on business modeling & requirements gathering ● Elaboration Heavy focus on analysis & design Other workflows may be included ● Construction: Focus on programming (implementation) ● Transition Focus on testing & deployment 9/19/2021 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 69 The Unified Process – Engineering Workflows ● Business Modeling Workflow Uncovers problems and identifies potential projects within a user organization Primarily executed in inception phase ● Requirements Workflow Eliciting both functional and non-functional requirements Mostly used in inception and elaboration phases Use cases are developed throughout the development process ● Analysis Workflow Addresses the creation of an analysis model of the problem domain ● Design Workflow Transitions the analysis model into the design model to implement the system 70 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 69 70 The Unified Process – Engineering Workflows ● Implementation Workflow Create an executable solution based on the design model (i.e., programming) Associated primarily with elaboration and construction phases ● Testing Workflow Primary purpose is to increase the quality of the system Mostly used in elaboration, construction and transition phases ● Deployment Workflow Mostly associated with the transition phase Includes activities such as software packaging, distribution, installation and beta testing. Training of the end user to use the new system 9/19/2021 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 71 The Unified Process – Supporting Workflows ● Project Management is the truly cross-phase workflow and is active in all the four phases. Activities include identifying and managing risks, managing scope, estimating the time to complete each iteration and the entire project, estimating the cost of individual iteration and the whole project and tracking the progress being made towards the final version of the system ● Configuration and Change Management Primary purpose is to keep track of the state of the evolving system Associated mostly with the construction and transition phases ● Deployment Workflow Addresses the development teams needs to use different tools and processes Primarily involved in the inception phase but can be active in all the phases 72 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 71 72 Unified Modeling Language (UML) ● Provides a common vocabulary of object-oriented terms and diagramming techniques rich enough to model any systems development project from analysis through implementation ● Version 2.5 has 15 diagrams in 2 major groups: Structure diagrams Represent the data and static relationships in an information system Behavior diagrams Depict the dynamic relationships among the instances or objects that represent the business information system 9/19/2021 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 73 UML Structure Diagrams CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 73 74 74 UML Behavioral Diagrams 9/19/2021 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 75 Summary ● All systems development projects follow essentially the same process, called the system development life cycle (SDLC) ● System development methodologies are formalized approaches to implementing SDLCs ● The systems analyst needs a variety of skills and plays a number of different roles ● Object-oriented systems differ from traditional systems 76 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 75 76 Summary ● Object-Oriented Systems Analysis and Design (OOSAD) uses a use-case-driven, architecture-centric, iterative, and incremental information systems development approach ● The Unified Process is a two-dimensional systems development process described with a set of phases and workflows ● The Unified Modeling Language, or UML, is a standard set of diagramming techniques 9/19/2021 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) CSE304 Objbect‐Oriented Software Engineering Week 1 77 Recommended Readings 1. System Analysis and Design: An Object-Oriented Approach with UML by Alan Dennis, Barbara Haley Wixom and David Tegarden, 5th Ed, John Wiley & Sons, 2015 Chapter 1 CSE304 Object Oriented Software Engineering COMSATS University, Islamabad (CUI) 77 78 78