1 Week 1 Introduction, Writing a Program, Building a System Software Engineering Spring Term 2016 Marymount University School of Business Administration.

Slides:



Advertisements
Similar presentations
Chapter 1 Writing a Program Fall Class Overview Course Information –On the web page and Blackboard –
Advertisements

INTRODUCTION TO MODELING
1 Information Systems Development (ISD) Systems Development Life Cycle Overview of Analysis Phase Overview of Design Phase CP2236: Information Systems.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Chapter 1 - An Introduction to Computers and Problem Solving
Copyright 2002 Prentice-Hall, Inc. Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Chapter.
SE 555 – Software Requirements & Specifications Introduction
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
 QUALITY ASSURANCE:  QA is defined as a procedure or set of procedures intended to ensure that a product or service under development (before work is.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Chapter 1 The Systems.
Introduction to Systems Analysis and Design Trisha Cummings.
Writing a Program Chapter 1. Introduction We all “start” by learning how to code in some programming language. –With a small, hypothetical, and fairly.
UML - Development Process 1 Software Development Process Using UML (2)
Managing Software Quality
Profile and a quick introduction Software Engineering: ) هندسة البرمجيات (in Arabic: is the branch of computer science Designed to develop a set rules.
Chapter 2 The process Process, Methods, and Tools
Copyright 2002 Prentice-Hall, Inc. Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design.
Describing Methodologies PART II Rapid Application Development* Systems Analysis and Design II.
An Introduction to Software Architecture
Eng. Mohammed Timraz Electronics & Communication Engineer University of Palestine Faculty of Engineering and Urban planning Software Engineering Department.
Teaching material for a course in Software Project Management & Software Engineering – part II.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
CSE 219 Computer Science III Program Design Principles.
Database Design and Management CPTG /23/2015Chapter 12 of 38 Functions of a Database Store data Store data School: student records, class schedules,
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Systems Analysis and Design in a Changing World, Fourth Edition
Effort.vs. Software Product “Quality” Effort Product “Quality” Which curve? - linear? - logarithmic? - exponential?
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
The Software Development Process
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
D R A T D R A T ABSTRACT Every semester each department at Iowa State University has to assign its faculty members and teaching assistants (TAs) to the.
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
CSC480 Software Engineering Lecture 7 September 16, 2002.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
Chapter 14 - Analyzing a Case and Writing a Case Report 1 Understanding the Case Method of Learning What is the case method?  Applies the ancient Socratic.
C++ for Engineers and Scientists, Second Edition 1 Problem Solution and Software Development Software development procedure: method for solving problems.
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
SYSTEM ANALYSIS AND DESIGN LAB NARZU TARANNUM(NAT)
1 Week 7 Software Engineering Spring Term 2016 Marymount University School of Business Administration Professor Suydam.
 System Requirement Specification and System Planning.
1 Week 1 Introduction, Writing a Program, Building a System Software Engineering Fall Term 2015 Marymount University School of Business Administration.
MANAGEMENT INFORMATION SYSTEM
1 Week 3 Software Engineering Spring Term 2016 Marymount University School of Business Administration Professor Suydam.
Chapter 1 The Systems Development Environment
School of Business Administration
School of Business Administration
The Development Process of Web Applications
System Design Ashima Wadhwa.
Chapter 11 Object-Oriented Design
Chapter 1 The Systems Development Environment
School of Business Administration Writing a Program, Building a System
Chapter 1 The Systems Development Environment
Chapter 1 Introduction(1.1)
An Introduction to Software Architecture
Introduction to Systems Analysis and Design Stefano Moshi Memorial University College System Analysis & Design BIT
Introduction – “Writing A Program”
Chapter 1 The Systems Development Environment
Chapter 2: Building a System
Chapter 1: Creating a Program.
Building a “System” Moving from writing a program to building a system. What’s the difference?! Complexity, size, complexity, size complexity Breadth.
Presentation transcript:

1 Week 1 Introduction, Writing a Program, Building a System Software Engineering Spring Term 2016 Marymount University School of Business Administration Professor Suydam

Using the Right Terminology Class Website WebEx Organizing Teams DreamSpark Bootcamp Beginning Questionnaire Writing Intensive Course Case Studies/Mini-Projects Chapters 1&2 Preparation for Second Class

4

5

6 Form 3-person teams Create “distinguished” name Organize for team projects (Case Studies)

7

8

9 IT210 is designated a Writing Intensive Course. Upon successful completion of this course, students will be expected to: a. Produce written work appropriate for the information technology profession through a process that involves drafting and revision based upon feedback; b. Produce focused and coherent documents that address business audiences, move effectively between generalizations and details, make honest use of sources, and engage in complex ideas without distortion; c. Draft documents that show careful attention to fluent sentence structure, grammatical correctness, and proper technical documentation; and d. Take the subject of documentation in the information technology field, analyze appropriate primary and secondary sources materials and support a focused approach in a clear, persuasive, and coherent document. e. The Marymount University Center for Teaching and Learning, Writing Outcomes for WI Course is at the following URL:

10

11 Go through Class Website and know how to navigate Get textbook and read chapters 1-3 Get with Teammates – make plan for how you will meet during semester Decide: Team Name, Case Study (CS) Project, CS Project Name

12

13 1) Understand the problem – requirements Functionalities Non-functionalities: performance, security, modifiability, marketability, etc. 2) Perform Some Design --- based on requirements Organizing the functionalities in some sequence; possibly using some diagrams Focus on input/output ( data, formats, organization) Think about some constraints (non-functionalities) such as speed, UI looks, programming language, dependencies, etc. any specific algorithm and improvements on sequence of functionalities.

14 3) Code/Implement – Turning the design into actual code -- Depending on how much design is completed, one may either directly engage in conversion to code (language dependent) or do some more designing. a) Converting input/output to specific UI Interface or I/O format b) Sequencing the processing in the desired order c) Ensuring and converting the processing “algorithm” correctly to the target language construct. d) figure out how to use language library (properly)

15 4) Validate/Test the program – check the program results (via output) with some predetermined set of inputs. The pre-determined inputs are “test cases” and requires some thinking. If the results do not match what is expected then: “Debug” Fix Retest ---- revalidate Stop when all test cases produce the expected results.

16 How long (elapsed time) did it take to complete the work? How much effort (total person hours) is expended to do the work? Does the solution solve the complete problem? How “good” is the work – (code, design, documentation, testing, etc.)? based on ?

17 Functional vs Non-Functional Requirements

18

19

20 The most important rule is to be consistent—especially in your choice of names, capitalization, and programming conventions. Choose names carefully. In addition to being consistent in naming, try to make sure names for functions and variables are descriptive. Test before using a function or method. Make sure that it works. Know the standard library. In most modern programming languages, the standard library will implement many common functions, usually including sorting and collections of data, database access, utilities for web development, networking, and much more.

21

22

23

24 SUM (4-1) = = 6 SUM(12-1)= = 66

25 Prepare A & B for class 1/20

26

27 1. What are statements that define and qualify what the program needs to do? Ans: Requirement statements define what the user needs and thus what the programs needs to do for the users. Page: 2 2. What are statements that constrain the ways in which the software can be designed and implemented? Ans: Design constraints are imposed by the users on the ways in which the design and implementation must satisfy those constraints. An example may be a constraint on the choice of programming language for implementation. Page: 2 3. Which type of requirement statement defines what the program needs to do? Ans: Functional requirement statements as opposed to the non-functional requirement statements speak to the “functions”. Page: 3 4. What requirements qualify the functional requirements and specify in what manner they need to be achieved? Ans: Non-functional requirement statements qualify the functional requirements with additional characteristics such as performance. Page: 3-4

28 5. What decisions are those taken by the software engineer about the best ways (processes, techniques and technologies) to achieve the requirements? Ans: Design decisions are made by software engineers to achieve the solution that will satisfy the requirements. Page: 6 6. What type of testing refers to testing done by the clients (or somebody on their behalf), to make sure the program runs as specified. Ans: Acceptance testing is usually performed by the users and clients prior to formally adopting the solution. Page: 6 7. What is GUI, and what is CLI? Ans: GUI stands for Graphic User Interface where graphical icons are used in the interface to users. CLI stands for Command Line Interface where the user communicates with the system through text line of commands and text line of responses. Page: 5 8. List three of the typical kinds of non-functional requirements Ans: Three typical non-functional requirements include: 1) performance related requirements number of transactions per second, 2) real-time processing where a certain processing or response must be made within a given time frame, 3) extensible and modifiable is another non- functional requirements. Others include: easy to use, reliable, etc. Page: 4-5

29 1. Define the depth versus the breadth issue in software complexity. Ans: Depth problem addresses the complexity and relationships among the components or items. These relationships may be in the form of sharing data, transfers of control among the components, or some combination of data and control linkage. Breadth problem refers to the number of and variety of components or items. The more there are, the worse the breadth problem. The breadth of software complexity usually refers to “the number of” functionality, components, interfaces, etc. of the software while the depth of the software complexity refers to the “relations and interactions” among these functions, components, etc. Page: Describe a way to simplify a complex problem. Ans: There are several ways to simplify a problem. They all relate back to curtailing the depth and breadth issue. These include: -decomposition -modularization -separation -incremental iteration As an example, decomposition is a method to take a large problem and identify the smaller problems within that large problem. Then attempt to solve the large problem by first resolving the smaller problems. A common attribute among the methodologies of simplification is to “lessen” the relationships, number of functionalities, amount of interactions, etc. One such technique is decomposition, and another is modularization. Page: 26

30 3. List two technical concerns in developing large systems. Ans: Version 1: Some technical concerns in developing large systems are: -development language -development platform and tools -database -network -version and configuration control Version 2: Large system requires software engineers to consider many aspects of development, including a) architecture and design decomposition, b) choices of language, database, network, middleware, and c) the process and methodologies to be used for development. Page: What is the maximum number of communication paths for a team size of 20 people? Ans: Utilizing the communications formula for SUM (n-1) where n= 20, the maximum communications for 20 people would be SUM (20-1). Page: 30

31 5. List four factors that should be considered in deciding how many post-release people will be needed. Ans: Version 1 - Some of the factors that should be considered in determining the number of people required for post release support include: -# of original development people committed to help in support -# of expected users -# of known problems at the time of the product release -Projected # of problems yet to be found -Amount of training users received Short Answer Version 2 - The amount of post-release support personnel that would be needed is based on several factors – i) how many customers/users are expected; ii) the quality of the product at release time in terms of known bugs that are still in the product; iii) amount of user training that was provided before release; iv) projected number of problems and changes that may be arriving, and v) how well trained are the support personnel. Page: 43-44