Basics Of Software Engg Slides by Sonia Rafaqat Solution By Rizwan Nawaz. 1 Topic Name 2 About Topic Page No Link About Topic Short Word deified for e.g. SD https://www.youtube.com/watch?v=vKh14asdfPFZWy8 What is software engg. 3 • What is Engineering: • The set of principles , discipline , rules to make a cost effective solution of the problem. Or • Application of science , tools and methods to find cost effective solution of the problem. • What is Software Engineering: • It’s defined as systematic , disciplined , and quantifiable approach in the development , operation and maintenance of software. https://www.youtube.com/watch?v=WxkP5KR_Emk Myths in Software Engg. 4 •There are 3 myths in software engg. • Development myths. • Customer Myths. • Management Myths. https://www.youtube.com/watch?v=zNRlDF_gaOs https://www.youtube.com/watch?v=uAcAXMNUYNU Practices in Software engg. 5 • SD think that he/she think software knowledge in specific technology like c, c++ , c# , java , python , etc. • They think that SDM knowledge has 3 year half life. • If they know the principles then they don’t worry about it. • • • • • Be agile. . Build an effective team. Focus on quality on any steps. . Be ready to adapt. Manage change. . Assess risk. Create work product that value to other. Stablish mechanism of communication and coordination. https://www.youtube.com/watch?v=uAcAXMNUYNU Software development Lifecycle (SDLC). 6 • How to Software conceptualize develop and maintained. 1. Planning. 2. Requirement analysis. 3. Design. 4. Implementation/coding. 5. Testing. 6. Deployment. 7. Maintenances. https://www.youtube.com/watch?v=i-QyW8D3ei0 Generic Process Model: 7 Mile Stones Def of Work result Roles And Responsibilities. Quality Req Q(A) role Artifacts Final: end of June Responsibility Process Model Activities & Methods NFA Framework Let quality req be reviewed. Tools Ppt , wrd ,DB Software database https://www.youtube.com/watch?v=vKh14PFZWy8 Task Sets 8 • Task set is a collection of software engineering work tasks , milestones and deliverables that must be accomplished to complete a particular software project. Task sets are different for different types of projects. http://web.uettaxila.edu.pk/CMS/seSPMbsSp09/notes%5CLecture7.ppt Process Pattern General: 9 • The Pattern used to explain how the something functions or take place , in other words a process or procedure. • Describe the order which they operate order is must. • Heavily dependent on description of individual steps or stages. https://www.youtube.com/watch?v=dW7hBejWJDk Process Pattern In software engg 10 • Process patterns can be defined as the set of activities, actions, work tasks or work products and similar related behavior followed in a software development life cycle. • Process Patterns can be best seen in software design cycle which involves the common stages of development. • For example, a generic software design life cycles has following steps: 1. Communication. 2. Planning. 3. Modeling which involves requirement gathering, analysis and design from business perspective. 4. Development which involves code generation and testing. 5. Deployment includes the code deployment and testing in the production environment. https://en.wikipedia.org/wiki/Process_patterns Process Improvement: 11 • Process improvement means understanding existing processes and changing these processes to increase product quality and/or reduce costs and development time. ✧ The process maturity approach, which focuses on improving process and project management and introducing good software engineering practice E.g. CMMI level. https://www.youtube.com/watch?v=ABNNLyiYZm0 Waterfall Model: https://www.youtube.com/watch?v=x-jqSXYE4S4 12 https://www.youtube.com/watch?v=DZtJTwWu9rs Evolutionary Process Model 13 R R R R https://www.youtube.com/watch?v=2S8lYZQF3I4 Specialized Process Models 14 • Component based Development: • The process is applied when reuse a development object. • Formal methods: • Emphasizes the mathematical specification of Requirement. • Aspect-oriented software development: • It provide a process methodologies approach for defining , specifying , designing and construction aspect. https://www.youtube.com/watch?v=nE1bC77HUmg Component Based Development 15 • Component-based development (CBD) is a procedure that accentuates the design and development of computer-based systems with the help of reusable software components. With CBD, the focus shifts from software programming to software system composing. Component-based development techniques involve procedures for developing software systems by choosing ideal off-the-shelf components and then assembling them using a well-defined software architecture. With the systematic reuse of coarse-grained components, CBD intends to deliver better quality and output. Component-based development is also known as component-based software engineering (CBSE). https://www.youtube.com/watch?v=cJSzoYM8l7I The Formal Methods Models: 16 • The formal methods model is concerned with the application of a mathematical technique to design and implement the software. This model lays the foundation for developing a complex system and supporting the program development. The formal methods used during the development process provide a mechanism for eliminating problems, which are difficult to overcome using other software process models. The software engineer creates formal specifications for this model. These methods minimize specification errors and this result in fewer errors when the user begins using the system. https://www.youtube.com/watch?v=D1frcipfi50 Agile Development: 17 https://www.youtube.com/watch?v=Z9QbYZh1YXY Business Information Systems: Components, Types, and Evaluating methods: • Any specific information system aims to support operations, management and decision-making. An information system is the information and communication technology (ICT) that an organization uses, and also the way in which people interact with this technology in support of business processes. 18 Types: 19 • Sales and marketing information systems. • Manufacturing and production information systems. • Finance and accounting information systems. • Human resources information systems https://paginas.fe.up.pt/~als/mis10e/ch2/chpt2-2bullettext.htm Components 20 • An information system is essentially made up of five components hardware, software, database, network and people. • Hardware consists of input/output device, processor, operating system and media devices. • Software consists of various programs and procedures. • Database consists of data organized in the required structure. • Network consists of hubs, communication media and network devices. People consist of device operators, network administrators and system specialist. https://www.managementstudyguide.com/types-of-information-systems.htm SDLC: Phases 21 https://www.youtube.com/watch?v=g974yAPRq1c System Planning: • System planning is done by people who have faith in the future and a vision of the future adequate to form the basis for planning. System planning has two major outputs which embody its contributions. These are proposals and design concepts. The proposal is addressed to the decision-maker. One of its main ingredients consists of a statement of the objectives of the system. The objectives may be set by the system planner, or they may be articulated by him as an expression of his understanding of the consensus of other responsible persons. • Design concepts evolving from system planning are based on the visualized system, and are addressed primarily to the system engineer. 22 Preliminary Investigation: 23 http://it-alteration.blogspot.com/2016/02/sdlc-and-preliminary-investigation.html SWOT Analysis: 24 https://www.youtube.com/watch?v=JXXHqM6RzZQ The Importance of Strategic Planning: 25 • The purpose of strategic planning for information systems (SPIS) is to provide a systematic process for developing a long-range plan for information systems on the basis of the organization’s overall strategic plan. For an organization to perform SPIS properly, it must consider both the organizational and the technical aspects of planning. The organizational aspect emphasizes the necessity of an integrated information systems plan and its close link to the organization’s objectives. The technical aspect emphasizes the necessity of planning for information systems architecture (ISA). https://www.tandfonline.com/doi/abs/10.1080/07421222.1988.11517805 Evaluation of Systems Requests: •Goal Based. •Goal Free Based. •Criteria Based. Specific Goals Overall System Check List 26 Requirements Engineering: 27 • Requirements engineering (RE) refers to the process of defining, documenting and maintaining requirements in the engineering design process Requirements Requirements Requirements Requirements elicitation; analysis; validation; management. http://www.di.univaq.it/marco.autili/output/download.php?fileID=30 Difference between Structured Analysis and Object Oriented Analysis: 28 https://www.youtube.com/watch?v=wK6zfKRm5RY Difference between FDD Diagrams & UML Diagrams: 29 https://www.youtube.com/watch?v=DWoD3mPlvdE Data & Process Modelling: 30 • Systems analysts use many graphical techniques to describe an information system. • A data flow diagram use various symbols to show how the system transforms input data into useful information https://www.slideshare.net/fallonbrewington/chapter-05-14085195 Diagrams: Data Flow, Context, Conventions, Detailed Level DFD’s: 31 https://www.youtube.com/watch?v=E2CK1xnce74 Logical Versus Physical Models: 32 • Logical data model • It is created at the requirements gathering, system analysis and top level design. It is a communication and specification tool for business analysts and business. • Physical data model • It is created when you translate top level design into physical tables in the database. This model is slightly different due to the fact that you have to worry about many details. This model is created by database/software architects, software developers or database administrators. https://www.youtube.com/watch?v=RJ9TpkWKyU0 The Design Process: 33 • The Design Process is an approach for breaking down a large project into manageable chunks. Architects, engineers, scientists, and other thinkers use the design process to solve a variety of problems Architecture Design Elements: Architecture can mean: A general term to describe buildings and other physical structures. The art and science of designing buildings and (some) no building structures. The style of design and method of construction of buildings and other physical structures. 34 Interface Design Elements: 35 • When designing your interface, try to be consistent and predictable in your choice of interface elements. Whether they are aware of it or not, users have become familiar with elements acting in a certain way, so choosing to adopt those elements when appropriate will help with task completion, efficiency, and satisfaction. • Interface elements include but are not limited to: • Input Controls: • Checkboxes, radio buttons, dropdown lists, list boxes, buttons, toggles, text fields, date field • Navigational Components: • Breadcrumb, slider, search field, pagination, slider, tags, icons • Informational Components: • Tooltips, icons, progress bar, notifications, message boxes, modal windows https://www.usability.gov/how-to-andtools/methods/user-interface-elements.html Component-Level Design Elements: 36 • The purpose of component level design is to define data structures, algorithms, interface characteristics, and communication mechanisms for each software component identified in the architectural design. • Component level design occurs after the data, architectural, and interface designs are established. • The component-level design represents the software in a way that allows the designer to review it for correctness and consistency, before it is built. • The work product produced is a design for each software component, represented using graphical, tabular, or text-based notation. • Design walkthroughs are conducted to determine correctness of the data transformation or control transformation allocated to each component during earlier design steps http://pesona.mmu.edu.my/~wruslan/SE3/Readings/GB 1/pdf/ch11-GB1-Component-Level-Design.pdf Deployments Design Elements: 37 Design Elements . UML Deployment Diagram is a type of Structure Diagrams that shows the physical deployment of information generated by the software Composition; Constraint; Generalization; Realization; Interface with connector; Processor node; Execution environment node; Smart connector; https://www.conceptdraw.com/diagram/deploymentLine connector level-design-elements-in-software-engineering System Architecture: 38 • A system architecture or systems architecture is the conceptual model that defines the structure, behavior, and more views of a system. An architecture description is a formal description and representation of a system, organized in a way that supports reasoning about the structures and behaviors of the system. https://en.wikipedia.org/wiki/Systems_architecture Architectural Styles: 39 User Interface Design: • User interface design (UI) or user interface engineering is the design of user interfaces for machines and software, such as computers, home appliances, mobile devices, and other electronic devices, with the focus on maximizing usability and the user experience. 40 WebApps Interface Design: • An application's user interface design is more than the sum of its aesthetic decisions and branding. At its best, UI design is a tool for helping users achieve what they need in an efficient manner. • Your choice of a partner when developing a web application's interface design is critical. 41 Software Quality Assurance: 42 • Software quality assurance (SQA) consists of a means of monitoring the software engineering processes and methods used to ensure quality. The methods by which this is accomplished are many and varied, and may include ensuring conformance to one or more standards, such as ISO 9000 or a model such as CMMI. https://www.youtube.com/watch?v=M7ZVcQOSVF4 Validation Testing: 43 • Software Testing - Validation Testing. The process of evaluating software during the development process or at the end of the development process to determine whether it satisfies specified business requirements. Validation Testing ensures that the product actually meets the client's needs. https://www.youtube.com/watch?v=2zWfVs-u7iM System Testing: 44 • SYSTEM TESTING is a level of software testing where a complete and integrated software is tested. The purpose of this test is to evaluate the system's compliance with the specified requirements. OR System testing ensures that all system element have integrated will with the Software and the entire system functions properly. https://www.youtube.com/watch?v=2zWfVs-u7iM Internal and External View of Testing: 45 Project Management: • Project management is the practice of initiating, planning, executing, controlling, and closing the work of a team to achieve specific goals and meet specific success criteria at the specified time. 46 Risk Management: 47 • It is generally caused due to lack of information, control or time. A possibility of suffering from loss in software development process is called a software risk. • Steps: • • • • • Step 1: Identify the Risk. ... Step 2: Analyze the risk. ... Step 3: Evaluate or Rank the Risk. ... Step 4: Treat the Risk. ... Step 5: Monitor and Review the risk. https://www.testinstitute.org/What_Is_Software_Risk_And_Software_Risk _Management.php Maintenance and Reengineering: 48 • Software managers are often confused over maintenance and reengineering. • Maintenance and reengineering are two different areas in software engineering. • Maintenance is for running the system till the age of the system where as there reengineering make the system new to work for another life span. https://pdfs.semanticscholar.org/5b6d/27b6d6e89759f2f 23c58f2de93726e78e896.pdf End of Slides By Rizwan Nawaz. 49