Software Engineering Interacting with consumer So far… What is Software Engineering? Different software process models waterfall, incremental, spiral Importance of having specifications/requirements while designing Outline In class activity: specifications/requirements The management spectrum: people, product, process, project End users vs consumers Boehm’s W5HH principle What’s next? In class activity Yesterday you designed an online grocery store with no specifications. Now 3 of you come up with some set of specifications for things that you want to see in an online grocery store 1) Like for eg: visual display of items (like we saw a few of you design yesterday) 2) Eg: that you want the grocery store to ask you questions and you don’t want to type in and just answer In class activity 3) Could be that you want the grocery items delivered and placed in your fridge :D 4) Could be that you want it the touch and drag way rather than a mouse click 5) Could be that you want this designed only for old people. Think wild and come up with any set of specifications In class activity Now you have to explain to another person your idea without using a paper. The person sketches out the prototype based on your description. You then can tell the class what you visualized it to look like and how was it was designed. It could turn out just as you wanted or maybe way different. In class activity 5 min for requirements 5 min to explain to the designer 10 min for the designer Then each of you say (both in the team) what you envisioned and how it complied to what you envisioned and if some parts did not turn out how you had expected mention what are those and what way of explaining would have made it better. Problems with requirements? Consistency problem Completeness problem Ambiguity/lack of clarity problem …. Solution? Formal specifications…? You cant build a right system unless you understand what it should do Use cases = the activities a system supports e.g.: tweet a vote report, view delays on map Entities = the kinds of objects that are involved in use cases e.g.: tweets, user accounts, polling locations, maps Attributes = the properties of the entities e.g.: tweets have: timestamp, text, sender The four P’s Effective software project management focuses on the four P’s: People, product, process and project. 1) People 2) Product 3) Process 4) Project The four P’s People must be organized into effective teams, motivated to do high quality software work and coordinated to achieve effective communication. Product requirements must be communicated from customer to developer, partitioned (decomposed) into their constituent parts and positioned for work by the software team. The four P’s The process must be adapted to the people and the product. A common process framework is selected an appropriate software engineering paradigm is applied, and a set of work tasks is chosen to get the job done. Finally the project must be organized in a manner that enables the software team to succeed. People The software process is populated by stakeholders who can be categorized into one of five categories: a) Senior managers who define the business issues that often have a significant influence on the project b) Project managers who must plan, motivate organize and control the practitioners who do software work People Practitioners who deliver the technical skills that are necessary to engineer a product or application. Customers who specify requirements for the software to be engineered. End users who interact with software once released for production use. End users vs customers Software engineers communicate with different people. The most important are these: In some cases end users and customers are the same but for many projects customers and end users are different people working for different people, managers or even different organizations. Eg: excel might be used in bank or by a teacher to enter grades End users vs customers Customer is a person or a group who: Originally requested the software to be built. Defines business objective for the software. Provide basic product requirements Coordinates funding for the project. End users vs customers End user on the other hand is a person or a group of people who Will actually use the software that is built to achieve some business purpose Will define operational details of the software so the business purpose can be achieved. The product A detailed analysis of software requirements would provide necessary information for estimates but analysis often takes weeks or even months to complete. At a minimum the scope must be established. Two important steps are: Software scope Problem decomposition Product Scope is defined by answering the following questions: Context: how does software to be built fit into a large system or business context? Information objectives: what data objects are required for input? Function and performance: what function does the software perform to transform input data into output? Any special characteristics to be addressed? Product Problem decomposition: divide and conquer : partitioned to smaller problems decomposition The W5HH principle Why is the system being developed? Does the business purpose justify the expenditure of people, money and time? What will be done? Task set required for the project When will it be done? Establishing a schedule by identifying project tasks and hence setting up milestones W5HH principle Who is responsible for a function? The role and responsibility of each member of the team must be defined. Where are they located organizationally? Not all roles and responsibilities reside within software practitioners. The customer, user and stakeholders also have roles. W5HH principle How will the job be done technically and managerially? Once the product scope is established, a management and technical strategy for the project must be defined. How much of the resource is needed? The answer to this question is derived by developing estimates based on answers to earlier questions. Three of a kind in a team Team leaders: motivation, collaboration, organization ability Project managers: problem solving, managerial identity, influence and team building. Designer: innovative What’s next? Each of you will be given 5 minutes to present your vision statement The rest of you can make notes and vote on the vision statement you like the best.You can vote for two of them. I will upload all the vision statements on the website for further reference In Friday’s class you will have to turn in your votes and explain the basis of your votes Due Friday midnight: Insights you have drawn from this in-class activity (could be about collaboration , design) : one page