This lab experiment aims to develop a data flow diagram (DFD) model for a given project. A DFD model graphically depicts the flow of data through various processes in a system. It includes level-0, level-1 DFDs and a data dictionary. A level-0 DFD shows the system's context and major processes, while level-1 diagrams provide more detail by decomposing high-level processes. The data dictionary defines all data elements in the DFDs. Developing a balanced DFD model involves matching input/output data between diagram levels. This experiment guides students through drawing DFDs and defining a data dictionary to model the data flow in a system.
The document provides details for performing a system analysis for a software engineering project. It outlines the following steps:
1. Introduction including purpose, intended audience, project scope.
2. Overall description of the product including perspective, features, user classes, operating environment, and design/implementation constraints.
3. Functional requirements organized by user class/feature including descriptions, conditions, business rules.
4. External interface requirements including user interfaces, hardware interfaces, software interfaces, communications interfaces.
5. System features including reliability, security, performance, supportability, design constraints.
The document specifies requirements for a software engineering project and provides guidance on performing requirement analysis and developing a software requirements specification (SR
1. The document outlines 9 lab assignments related to software engineering processes and techniques. The assignments cover topics like software development models, requirements specification, effort estimation, risk analysis, project scheduling, system modeling, testing, and configuration management.
2. Each assignment includes objectives, references, prerequisites, overview of relevant concepts, expected outputs, and post-lab discussion questions.
3. The assignments are designed to familiarize students with key phases of the software development lifecycle through hands-on practice of process models, documentation, analysis, design, testing and project management methods.
SWE-401 - 4. Software Requirement Specifications ghayour abbas
The document defines a Software Requirements Specification (SRS) as a formal report that lays the foundation for software engineering activities by eliciting and analyzing all system requirements. An SRS should have several key characteristics, including being correct, complete, consistent, unambiguous, modifiable, verifiable, and traceable. It should also be structured, concise, written from a black-box perspective, demonstrate conceptual integrity, and contain requirements that can be verified. The purpose of an SRS is to formally represent the desired software system and allow customers to review that the system meets their needs.
Here are the steps to develop a UML use case diagram for the given problem:
1. Identify the system and actors
The system is the "Supermarket Loyalty Program". The actors are "Customer" and "Supermarket Staff".
2. Identify the use cases
The key use cases are:
- Register for Loyalty Program
- Make Purchase
- View Purchase History
- Generate Prize Winners List
- Reset Purchase Entries
3. Draw and label the use case diagram
Draw oval shapes for the use cases and stick figures for the actors. Connect the actors to related use cases with lines. Label all elements.
4. Add descriptions to use cases
This document discusses object-oriented analysis and design (OOAD) requirements. It covers what requirements are, which include statements describing what a proposed system must do or constraints on its development. Requirements must contribute to solving the customer's problem and be agreed upon by stakeholders. Requirements can be functional, describing what the system should do, or non-functional, describing quality, performance, design, platform, and process constraints. Examples of functional requirements include system inputs/outputs and computations. Non-functional requirements constrain the system's quality, performance, design, environment, and development process.
This document discusses structured programming, functional programming, programming style, coding guidelines, software documentation, and challenges in software implementation. Structured programming breaks problems down into smaller pieces and uses modular programming and structured coding. Functional programming uses mathematical functions and concepts like recursion. Good programming style and coding guidelines make code readable and understandable. Software documentation includes requirements, design, technical, and user documentation. Challenges include code reuse, version management, and designing for target hosts.
The document appears to be a lab manual for an Object Oriented Analysis and Design course. It includes instructions for 12 experiments using Rational Rose software to model various systems. The first experiment is on introducing Rational Rose and modeling an ATM system. The manual provides the aim, infrastructure requirements, modular description, and UML diagrams for the ATM system experiment. It also shows the results and concludes the ATM system design was implemented efficiently.
This lab experiment aims to develop a data flow diagram (DFD) model for a given project. A DFD model graphically depicts the flow of data through various processes in a system. It includes level-0, level-1 DFDs and a data dictionary. A level-0 DFD shows the system's context and major processes, while level-1 diagrams provide more detail by decomposing high-level processes. The data dictionary defines all data elements in the DFDs. Developing a balanced DFD model involves matching input/output data between diagram levels. This experiment guides students through drawing DFDs and defining a data dictionary to model the data flow in a system.
The document provides details for performing a system analysis for a software engineering project. It outlines the following steps:
1. Introduction including purpose, intended audience, project scope.
2. Overall description of the product including perspective, features, user classes, operating environment, and design/implementation constraints.
3. Functional requirements organized by user class/feature including descriptions, conditions, business rules.
4. External interface requirements including user interfaces, hardware interfaces, software interfaces, communications interfaces.
5. System features including reliability, security, performance, supportability, design constraints.
The document specifies requirements for a software engineering project and provides guidance on performing requirement analysis and developing a software requirements specification (SR
1. The document outlines 9 lab assignments related to software engineering processes and techniques. The assignments cover topics like software development models, requirements specification, effort estimation, risk analysis, project scheduling, system modeling, testing, and configuration management.
2. Each assignment includes objectives, references, prerequisites, overview of relevant concepts, expected outputs, and post-lab discussion questions.
3. The assignments are designed to familiarize students with key phases of the software development lifecycle through hands-on practice of process models, documentation, analysis, design, testing and project management methods.
SWE-401 - 4. Software Requirement Specifications ghayour abbas
The document defines a Software Requirements Specification (SRS) as a formal report that lays the foundation for software engineering activities by eliciting and analyzing all system requirements. An SRS should have several key characteristics, including being correct, complete, consistent, unambiguous, modifiable, verifiable, and traceable. It should also be structured, concise, written from a black-box perspective, demonstrate conceptual integrity, and contain requirements that can be verified. The purpose of an SRS is to formally represent the desired software system and allow customers to review that the system meets their needs.
Here are the steps to develop a UML use case diagram for the given problem:
1. Identify the system and actors
The system is the "Supermarket Loyalty Program". The actors are "Customer" and "Supermarket Staff".
2. Identify the use cases
The key use cases are:
- Register for Loyalty Program
- Make Purchase
- View Purchase History
- Generate Prize Winners List
- Reset Purchase Entries
3. Draw and label the use case diagram
Draw oval shapes for the use cases and stick figures for the actors. Connect the actors to related use cases with lines. Label all elements.
4. Add descriptions to use cases
This document discusses object-oriented analysis and design (OOAD) requirements. It covers what requirements are, which include statements describing what a proposed system must do or constraints on its development. Requirements must contribute to solving the customer's problem and be agreed upon by stakeholders. Requirements can be functional, describing what the system should do, or non-functional, describing quality, performance, design, platform, and process constraints. Examples of functional requirements include system inputs/outputs and computations. Non-functional requirements constrain the system's quality, performance, design, environment, and development process.
This document discusses structured programming, functional programming, programming style, coding guidelines, software documentation, and challenges in software implementation. Structured programming breaks problems down into smaller pieces and uses modular programming and structured coding. Functional programming uses mathematical functions and concepts like recursion. Good programming style and coding guidelines make code readable and understandable. Software documentation includes requirements, design, technical, and user documentation. Challenges include code reuse, version management, and designing for target hosts.
The document appears to be a lab manual for an Object Oriented Analysis and Design course. It includes instructions for 12 experiments using Rational Rose software to model various systems. The first experiment is on introducing Rational Rose and modeling an ATM system. The manual provides the aim, infrastructure requirements, modular description, and UML diagrams for the ATM system experiment. It also shows the results and concludes the ATM system design was implemented efficiently.
Object-Oriented Analysis techniques covering requirements elicitation and object analysis model development delivered to post-graduate students of Object Oriented Software Engineering
SWE-401 - 6. Software Analysis and Design Toolsghayour abbas
The document discusses several software analysis and design tools used by software designers including:
- Data Flow Diagrams (DFDs) which graphically depict the flow of data in a system. DFDs come in logical and physical types.
- Structure Charts which represent the hierarchical structure and functions of system modules in greater detail than DFDs.
- HIPO Diagrams which decompose system functions hierarchically and depict functions performed without data or control flow.
- Additional tools discussed are Structured English, Pseudo-Code, Decision Tables and Entity-Relationship Models.
This document discusses different approaches to requirements modeling including scenario-based modeling using use cases and activity diagrams, data modeling using entity-relationship diagrams, and class-based modeling using class-responsibility-collaborator diagrams. Requirements modeling depicts requirements using text and diagrams to help validate requirements from different perspectives and uncover errors, inconsistencies, and omissions. The models focus on what the system needs to do at a high level rather than implementation details.
Defines software quality and provides detailed activities of SQA along with software change management delivered to post-graduate students of Object Oriented Software Engineering.
This document outlines the key components and purpose of a software design document. It explains that the document lays out a plan for software requirements and specifications to guide programmers. The main sections are an introduction, system overview, system architecture, data design, component design, human interface design, requirements, and optionally appendices. The design document provides essential information for programmers to write code according to the envisioned system design. It helps ensure clear communication between designers and programmers.
Lecture 14 requirements modeling - flow and behaviorIIUI
This document discusses requirement modeling strategies, focusing on structured analysis using data flow diagrams (DFDs). It provides an overview of elements of structured analysis like entity relationship diagrams and DFDs. DFDs take an input-process-output view, showing how data flows into processes and is transformed as it flows out. The document demonstrates creating DFDs at the context, level 1 and level 2 for a SafeHome security system, starting from a level 0 context diagram and refining individual processes.
My name K.Yesubabu Setty from Hyderabad, India.This ppt includes the information about Software system development tools,methodologies, design. A brief explanation about software system.
Software requirement engineering bridges the gap between system engineering and software design. It involves gathering requirements through elicitation techniques like interviews and facilitated application specification technique (FAST), analyzing requirements, modeling them, specifying them in documents like use cases, and reviewing the requirements specification. Quality function deployment translates customer needs into technical requirements. Rapid prototyping helps validate requirements by constructing a partial system implementation using tools like 4GLs, reusable components, or formal specification languages. The software requirements specification document is produced at the end of analysis and acts as a contract between developers and customers.
SWE-401 - 12. Software CASE Tools Overviewghayour abbas
CASE (Computer Aided Software Engineering) tools automate various stages of the Software Development Life Cycle (SDLC) and are used by software engineers, project managers, and analysts. There are different types of CASE tools that can be used for activities like documentation, project management, analysis, design, programming, testing, and maintenance. CASE tools provide benefits like accelerated development, reduced errors, and improved collaboration through features like centralized repositories and version control.
The document discusses key concepts in software design including:
- The main activities in software design are data design, architectural design, procedural design, and sometimes interface design. Preliminary design transforms requirements into architecture while detail design refines the architecture.
- Data design develops data structures to represent information from analysis. Architectural design defines program structure and interfaces. Procedural design represents structural components procedurally using notations like flowcharts.
- Other concepts discussed include modularity, abstraction, software architecture, control hierarchy, data structures, and information hiding. Modular design, abstraction and information hiding help manage complexity. Software architecture and control hierarchy define program organization.
1. The document discusses software testing and provides definitions, objectives, and types of testing. It defines testing as analyzing software to detect bugs and differences from requirements.
2. The primary objectives of testing are to design tests that systematically uncover errors with minimal time and effort. Exhaustive testing all possible inputs is not possible due to the large number of combinations.
3. White box testing uses the internal logic and structure of code to design test cases that execute all independent paths, loops, and internal data structures to ensure validity. It helps optimize code but does not ensure requirements are fulfilled and requires a skilled tester.
SWE-401 - 1. Introduction to Software Engineeringghayour abbas
Software engineering is the application of engineering principles to the development of software. It involves systematic, disciplined, and quantifiable approaches to develop, operate, and maintain software. The goal of software engineering is to produce reliable and efficient software products. Some key aspects of software engineering include requirements gathering, design, programming, testing, and maintenance. Software engineering principles are important for developing large, complex software in a cost-effective manner that can scale and adapt to changing needs over time.
Software design is the process of transforming user requirements into a suitable form for programmers to use for coding and implementation. It is the first step in the software development life cycle and moves the focus from understanding user needs to determining technical solutions. The output of software design can be directly used for programming. Software design yields three levels of results - architectural design, high-level design, and detailed design - which break the system down into more specific components and their interactions. Modularization, concurrency, coupling, and cohesion are important concepts in software design. Verification of the software design output is important before implementation to detect any issues early.
Software Engineering Sample Question paper for 2012Neelamani Samal
This document contains sample questions for the Principles and Practices of Software Engineering exam. It is divided into two parts:
Part A contains 10 short answer questions worth 2 marks each on topics like what defines software engineering, different testing stages, software architecture, and estimation models.
Part B contains 5 long answer questions worth 10 marks each, from which students must answer 5. Questions cover topics such as requirements gathering techniques, software development process models, design principles, testing strategies, UML diagrams for library and supermarket systems, and software metrics and maintenance.
Unit 3- requirements for software development arvind pandey
The document discusses software requirements including functional and non-functional requirements, user requirements, and system requirements. It covers topics like requirements engineering, the importance of requirements, problems that can arise from imprecise requirements, and how to classify and write good requirements. Functional requirements state what services the system should provide, how it should react to inputs, and how it should behave. Non-functional requirements constrain the system's operation and development. Good requirements are complete, consistent, understandable, and unambiguous.
Software Engineering with Objects (M363) Final Revision By Kuwait10Kuwait10
This document provides an overview of software engineering concepts covered in various course units. It begins with introductions to approaches to software development, requirements concepts, and modeling. Key topics covered include the software development life cycle, requirements elicitation and analysis techniques, types of requirements (functional and non-functional), modeling languages like UML, and risks and traceability in software projects. The document also lists contents for each of the 14 course units.
The document discusses requirements engineering and summarizes key topics covered in Chapter 4, including:
- Functional and non-functional requirements and how they differ
- The structure and purpose of a software requirements specification document
- Methods for specifying requirements such as using natural language, structured specifications, and tables
- Challenges in writing requirements clearly and avoiding ambiguity or mixing of requirement types
This document provides an outline and details of the key topics covered in Unit 1 of a Software Engineering course, including defining framework activities, identifying task sets, and process patterns. The five framework activities are communication, planning, modeling, construction, and deployment. Process patterns describe process-related problems, the environment they occur in, and proven solutions. The document also discusses approaches to software process assessment and improvement like SCAMPI, CBA IPI, SPICE, and ISO 9001:2000.
Object-Oriented Design techniques covering system design, and object design delivered to post-graduate students of Object Oriented Software Engineering
The document discusses various prescriptive software process models including the waterfall model, incremental process model, evolutionary process model, and prototyping. The waterfall model proposes a sequential approach from requirements to deployment. The incremental model produces deliverable software increments. Evolutionary models iteratively produce more complete versions. Prototyping builds prototypes to help define requirements through evaluation. Issues with each approach are also outlined.
Software requirements specification of Library Management SystemSoumili Sen
The document provides requirements for a Library Management System. It includes 3 or less sentences:
The Library Management System aims to computerize library processes like book borrowing and maintain member and book details in a database. It will allow librarians and members to search for books, view member accounts, and generate reports. The system needs to be secure, fast, and compatible with common browsers and operating systems.
This document provides a summary of requirements for a Library Management System. It includes 3 sections:
1. Introduction - Defines the purpose, scope and intended audience of the system which is to manage library processes like book borrowing online.
2. Overall Description - Outlines key product functions for administrators and users, the operating environment, user characteristics and design constraints.
3. External Interfaces - Specifies the user interface requirements including login, search and categories. Hardware and software interfaces are also listed.
The document provides a high-level overview of the essential functions, behaviors and non-functional requirements for the library management software.
Object-Oriented Analysis techniques covering requirements elicitation and object analysis model development delivered to post-graduate students of Object Oriented Software Engineering
SWE-401 - 6. Software Analysis and Design Toolsghayour abbas
The document discusses several software analysis and design tools used by software designers including:
- Data Flow Diagrams (DFDs) which graphically depict the flow of data in a system. DFDs come in logical and physical types.
- Structure Charts which represent the hierarchical structure and functions of system modules in greater detail than DFDs.
- HIPO Diagrams which decompose system functions hierarchically and depict functions performed without data or control flow.
- Additional tools discussed are Structured English, Pseudo-Code, Decision Tables and Entity-Relationship Models.
This document discusses different approaches to requirements modeling including scenario-based modeling using use cases and activity diagrams, data modeling using entity-relationship diagrams, and class-based modeling using class-responsibility-collaborator diagrams. Requirements modeling depicts requirements using text and diagrams to help validate requirements from different perspectives and uncover errors, inconsistencies, and omissions. The models focus on what the system needs to do at a high level rather than implementation details.
Defines software quality and provides detailed activities of SQA along with software change management delivered to post-graduate students of Object Oriented Software Engineering.
This document outlines the key components and purpose of a software design document. It explains that the document lays out a plan for software requirements and specifications to guide programmers. The main sections are an introduction, system overview, system architecture, data design, component design, human interface design, requirements, and optionally appendices. The design document provides essential information for programmers to write code according to the envisioned system design. It helps ensure clear communication between designers and programmers.
Lecture 14 requirements modeling - flow and behaviorIIUI
This document discusses requirement modeling strategies, focusing on structured analysis using data flow diagrams (DFDs). It provides an overview of elements of structured analysis like entity relationship diagrams and DFDs. DFDs take an input-process-output view, showing how data flows into processes and is transformed as it flows out. The document demonstrates creating DFDs at the context, level 1 and level 2 for a SafeHome security system, starting from a level 0 context diagram and refining individual processes.
My name K.Yesubabu Setty from Hyderabad, India.This ppt includes the information about Software system development tools,methodologies, design. A brief explanation about software system.
Software requirement engineering bridges the gap between system engineering and software design. It involves gathering requirements through elicitation techniques like interviews and facilitated application specification technique (FAST), analyzing requirements, modeling them, specifying them in documents like use cases, and reviewing the requirements specification. Quality function deployment translates customer needs into technical requirements. Rapid prototyping helps validate requirements by constructing a partial system implementation using tools like 4GLs, reusable components, or formal specification languages. The software requirements specification document is produced at the end of analysis and acts as a contract between developers and customers.
SWE-401 - 12. Software CASE Tools Overviewghayour abbas
CASE (Computer Aided Software Engineering) tools automate various stages of the Software Development Life Cycle (SDLC) and are used by software engineers, project managers, and analysts. There are different types of CASE tools that can be used for activities like documentation, project management, analysis, design, programming, testing, and maintenance. CASE tools provide benefits like accelerated development, reduced errors, and improved collaboration through features like centralized repositories and version control.
The document discusses key concepts in software design including:
- The main activities in software design are data design, architectural design, procedural design, and sometimes interface design. Preliminary design transforms requirements into architecture while detail design refines the architecture.
- Data design develops data structures to represent information from analysis. Architectural design defines program structure and interfaces. Procedural design represents structural components procedurally using notations like flowcharts.
- Other concepts discussed include modularity, abstraction, software architecture, control hierarchy, data structures, and information hiding. Modular design, abstraction and information hiding help manage complexity. Software architecture and control hierarchy define program organization.
1. The document discusses software testing and provides definitions, objectives, and types of testing. It defines testing as analyzing software to detect bugs and differences from requirements.
2. The primary objectives of testing are to design tests that systematically uncover errors with minimal time and effort. Exhaustive testing all possible inputs is not possible due to the large number of combinations.
3. White box testing uses the internal logic and structure of code to design test cases that execute all independent paths, loops, and internal data structures to ensure validity. It helps optimize code but does not ensure requirements are fulfilled and requires a skilled tester.
SWE-401 - 1. Introduction to Software Engineeringghayour abbas
Software engineering is the application of engineering principles to the development of software. It involves systematic, disciplined, and quantifiable approaches to develop, operate, and maintain software. The goal of software engineering is to produce reliable and efficient software products. Some key aspects of software engineering include requirements gathering, design, programming, testing, and maintenance. Software engineering principles are important for developing large, complex software in a cost-effective manner that can scale and adapt to changing needs over time.
Software design is the process of transforming user requirements into a suitable form for programmers to use for coding and implementation. It is the first step in the software development life cycle and moves the focus from understanding user needs to determining technical solutions. The output of software design can be directly used for programming. Software design yields three levels of results - architectural design, high-level design, and detailed design - which break the system down into more specific components and their interactions. Modularization, concurrency, coupling, and cohesion are important concepts in software design. Verification of the software design output is important before implementation to detect any issues early.
Software Engineering Sample Question paper for 2012Neelamani Samal
This document contains sample questions for the Principles and Practices of Software Engineering exam. It is divided into two parts:
Part A contains 10 short answer questions worth 2 marks each on topics like what defines software engineering, different testing stages, software architecture, and estimation models.
Part B contains 5 long answer questions worth 10 marks each, from which students must answer 5. Questions cover topics such as requirements gathering techniques, software development process models, design principles, testing strategies, UML diagrams for library and supermarket systems, and software metrics and maintenance.
Unit 3- requirements for software development arvind pandey
The document discusses software requirements including functional and non-functional requirements, user requirements, and system requirements. It covers topics like requirements engineering, the importance of requirements, problems that can arise from imprecise requirements, and how to classify and write good requirements. Functional requirements state what services the system should provide, how it should react to inputs, and how it should behave. Non-functional requirements constrain the system's operation and development. Good requirements are complete, consistent, understandable, and unambiguous.
Software Engineering with Objects (M363) Final Revision By Kuwait10Kuwait10
This document provides an overview of software engineering concepts covered in various course units. It begins with introductions to approaches to software development, requirements concepts, and modeling. Key topics covered include the software development life cycle, requirements elicitation and analysis techniques, types of requirements (functional and non-functional), modeling languages like UML, and risks and traceability in software projects. The document also lists contents for each of the 14 course units.
The document discusses requirements engineering and summarizes key topics covered in Chapter 4, including:
- Functional and non-functional requirements and how they differ
- The structure and purpose of a software requirements specification document
- Methods for specifying requirements such as using natural language, structured specifications, and tables
- Challenges in writing requirements clearly and avoiding ambiguity or mixing of requirement types
This document provides an outline and details of the key topics covered in Unit 1 of a Software Engineering course, including defining framework activities, identifying task sets, and process patterns. The five framework activities are communication, planning, modeling, construction, and deployment. Process patterns describe process-related problems, the environment they occur in, and proven solutions. The document also discusses approaches to software process assessment and improvement like SCAMPI, CBA IPI, SPICE, and ISO 9001:2000.
Object-Oriented Design techniques covering system design, and object design delivered to post-graduate students of Object Oriented Software Engineering
The document discusses various prescriptive software process models including the waterfall model, incremental process model, evolutionary process model, and prototyping. The waterfall model proposes a sequential approach from requirements to deployment. The incremental model produces deliverable software increments. Evolutionary models iteratively produce more complete versions. Prototyping builds prototypes to help define requirements through evaluation. Issues with each approach are also outlined.
Software requirements specification of Library Management SystemSoumili Sen
The document provides requirements for a Library Management System. It includes 3 or less sentences:
The Library Management System aims to computerize library processes like book borrowing and maintain member and book details in a database. It will allow librarians and members to search for books, view member accounts, and generate reports. The system needs to be secure, fast, and compatible with common browsers and operating systems.
This document provides a summary of requirements for a Library Management System. It includes 3 sections:
1. Introduction - Defines the purpose, scope and intended audience of the system which is to manage library processes like book borrowing online.
2. Overall Description - Outlines key product functions for administrators and users, the operating environment, user characteristics and design constraints.
3. External Interfaces - Specifies the user interface requirements including login, search and categories. Hardware and software interfaces are also listed.
The document provides a high-level overview of the essential functions, behaviors and non-functional requirements for the library management software.
This document is a project report submitted by Aaditya Shah for his AISSCE examination in 2013-2014 on a Library Management System created under the guidance of Sanjay Parmar. The report includes a declaration by Aaditya Shah, an acknowledgement thanking those who supported the project, and a certificate signed by the principal and teacher confirming the project fulfillment. The report then provides an introduction to the Library Management System software created, an analysis of the existing manual library system and benefits of the proposed computerized system, a feasibility analysis, hardware and software requirements, descriptions of the system interface and design.
Library mangement system project srs documentation.docjimmykhan
The document describes a library management system created in Java. It has four main modules: inserting data into the database, extracting data from the database, generating reports on borrowed and available books, and a search facility. The proposed system automates library processes like adding members and books, searching, borrowing and returning books. This makes transactions faster and reduces errors compared to the manual existing system. The system was implemented using Java, MS Access for the database, and designed to run on Windows operating systems. Testing was done to check functionality and ensure all requirements were met.
Presented at ConveyUX in Seattle, 7 Feb 2014
There is a gap between the most discussed and trendy practices in design, and the way many UX professional do their work. Sketching in the browser is fine for those who only design websites (and have a coding background) but what about apps, messaging, services and systems?
In this workshop Steven will outline some of the basic principles of good tools, and demonstrate with simple hands-on exercises how to use your existing software, and other simple techniques to design for multiple screen sizes, multiple contexts and every platform.
You will learn:
- How to consider scale, and really understand portability and touch.
- Design with adaptive and responsive needs in mind.
- Specifying design, so UX speaks the language of implementation.
- Service and systems design techniques.
- Quick techniques to assure that your designs will work in context.
Learn how to combine WordPress with your Miva Merchant Store to provide a better customer experience, content management and use the power of WordPress to take your store to the next level. This includes tips and tricks for using both platforms together, how to share assets and match your Miva Theme to WordPress and important security considerations when using WordPress alongside your Miva Store.
MivaCon 2016, Thursday session 1
The document discusses user-centric design (UCD). It explains that early technologies and markets developed without considering human users, focusing instead on technological and business priorities. This resulted in users being overlooked. UCD aims to understand what users need in products and systems, including usefulness, safety, ease of use, and emotional connection. It involves understanding user activities, characteristics, communication needs, and meanings. The core of UCD involves frameworks focusing on usefulness, usability, and emotional connection. Key knowledge areas in UCD include ergonomics, semiotics, ethnography, and systems thinking. UCD follows a process including user and contextual research, ideation, modeling and prototyping, and user trials.
This document outlines the user experience (UX) design process from beginning to end. It discusses gathering information before design such as understanding the client's needs, the intended audience, and competitors. During design, it involves creating information architecture like sitemaps, wireframes, and prototypes. Usability testing occurs during and after design. Analytics are used after launch to understand user behavior and improve the experience. The goal is to design a product that meets client and user needs based on data and testing throughout the process.
The document provides tips for organizing content and designing user interfaces for mobile devices. It discusses trends in mobile apps like emotional connections, self-improvement apps, and dashboards. It also offers guidance on navigation, prioritizing information, calls to action, notifications, and profiles. The goal is to create intuitive, engaging experiences that solve users' problems and guide them through the app efficiently.
By all metrics, worldwide mobile usage eclipsed desktop in 2015. So why are you still designing your ecommerce site for desktop? In this essential workshop, we’ll explore how to create an intuitive, effective, responsive mobile experience for your customers. Learn how to optimize for different devices and operating systems, create concise navigation, make strong use of images, forms, and buttons, and employ powerful design cues to lead your customers from homepage to checkout.
MivaCon 2016, Thursday session 3.
UX Design for Mobile Payment ExperiencesSkip Allums
O'Reilly Webcast: Oct 14, 2014
With mobile devices emerging as new tools for transactions and identification, designers face challenging interactions and user expectations from payment scenarios. Consumers expect mobile payment experiences to be frictionless and familiar, while faithfully protecting their financial data. Falling short on any of these aspects will cause users to drop out, or worse, compromise their financial privacy. In this webcast, we'll look at ten emerging UX design best practices for mobile payment interactions.
References:
Apps mentioned:
http://www.paywithisis.com
http://www.squareup.com
https://www.google.com/wallet/
https://www.venmo.com
http://www.thelevelup.com
http://www.capitalone.com/online-banking/mobile/wallet/
https://www.lyft.com/
https://www.groupon.com
https://www.uber.com/
https://www.coinbase.com/
https://www.simple.com/
https://www.paypal.com/
https://www.apple.com/iphone-6/apple-pay/
http://www.starbucks.com/coffeehouse/mobile-apps/mystarbucks
Merchant Category codes
http://www.irs.gov/irb/2004-31_IRB/ar17.html#d0e1647
PCI DSS Compliance
https://www.pcisecuritystandards.org/security_standards/documents.php?document=pci_dss_v2-0#pci_dss_v2-0
Documenting Design: A Critical Step in Any Developers WorkflowLisa Sabin-Wilson
Designer, author and entrepreneur Lisa Sabin-Wilson walks through the critical step of documenting design with your client and how it will save you time and help your clients.
Videogame Design and Programming - 08 The Design DocumentPier Luca Lanzi
Lecture for the Videogame Design and Programming course for the MSc Engineering of Computing Systems (Laurea Magistrale in Ingegneria Informatica) - Politecnico di Milano.
Prof. Pier Luca Lanzi
Dipartimento di Elettronica, Informazione, e Bioingegneria
Course Webpage:
http://www.polimigamecollective.org
Course Facebook Page:
https://www.facebook.com/polimigamecollective
This document provides instructions for various exercises to be completed as part of an Operating Systems lab manual. It includes exercises on system calls like fork, exec, wait; I/O system calls; simulating commands like ls and grep; scheduling algorithms like FCFS, SJF, priority, round robin; inter-process communication using shared memory, pipes, message queues; the producer-consumer problem using semaphores; and memory management schemes including paging, segmentation, and file allocation techniques. Example code is provided for implementing different memory management algorithms using concepts like free space list, allocated space list, and block merging.
This document provides an overview of virtual memory concepts including segmentation, paging, virtual addresses, linear addresses, physical addresses, page tables, and page directories. It also describes initializing memory management structures like pages and page tables during boot up. Finally, it outlines interfaces for key virtual memory functions like walking the page table, inserting/removing pages, and looking up the physical page for a virtual address.
GUN Make is a tool used to automate the building of executables from source code. It determines which files need to be recompiled based on timestamps and builds the necessary targets. Rules define dependencies and commands to transform files. Variables, macros, conditionals, and functions allow for complex logic and reuse in the makefile. Includes allow splitting makefiles into modular pieces.
The document describes four different CPU scheduling algorithms: First Come First Serve (FCFS), Shortest Job First (preemptive and non-preemptive), Priority scheduling (non-preemptive), and Round Robin. For each algorithm, pseudocode is provided to simulate the scheduling of processes and calculate metrics like waiting time and turnaround time. The FCFS algorithm calculates these metrics in a straightforward manner based on arrival time and burst time of each process. Shortest Job First simulates sorting processes by burst time and calculating wait times and turnaround times accordingly. Priority scheduling first sorts by priority then calculates metrics. Round Robin simulates time slicing by allocating a time quantum to each process in turn.
Human:
This document provides information about an OS lab manual, including definitions of operating systems, computer system components, Windows 2000 architecture and components, and other topics like LDAP, DNS, and Active Directory. Specifically, it defines operating systems, their goals, and components. It describes the Windows 2000 architecture in layers and subsystems. It also explains the Windows 2000 kernel, executive, and subsystems like object manager, virtual memory manager, and process manager.
Operating System Tutoring #1.
by Aerosystem Software Lab. @ Korea Aerospace Univ.
This is tutoring slide for the students who were not understood well about operating system or fundamentals of computer engineering. This slide may has some misconceptions or inappropriate examples. Any feedback is welcomed.
운영체제 튜터링 #1.
- 항공 소프트웨어 연구실 @ 한국항공대학교
본 슬라이드는 튜터링 강의자료로, 운영체제에 대한 개념이나 컴퓨터공학 기초지식이 부족한 학생들을 기준으로 작성하였습니다. 본 슬라이드에 일부 잘못된 개념이나 부적절한 예시가 포함되어 있을 수도 있습니다. 피드백 환영합니다.
Thorsignia - Custom software development services in indiacharan Teja
Thorsignia is a leading IT and Multimedia company that provides an integrated range of services. We render finest quality outputs to our clients through our domain expertise.
Every single day thousands of android devices are activated, the success of android owes to its simplicity and usability. This system aims at helping users with minimum or no programming background to build their own simple android application, which will in turn reduce the cost and makes the application friendlier. The principle behind the proposed system is simplicity and user friendliness for minimalistic applications. Development of mobile applications brings new challenges in possibilities for their adjustment to actual context of a user and a device. Our long-term goal is to design and implement a mobile client which can dynamically adapt to the surrounding conditions and requirements of the user.
IRJET- Implementation of Handling Android Application using SMS(Short Mes...IRJET Journal
This document summarizes an Android application that allows users to track and secure their devices remotely using SMS messages. The application would allow users to change device settings like volume or wipe data by sending an SMS with their personalized PIN code and the action to be performed. It discusses the need for such an application given many users' willingness to pay large sums to retrieve stolen devices and data. The proposed application would not require an internet connection, increasing its usefulness. It describes the system's design with modules for registration, message reading, and action performance based on verified PIN codes.
Chapter 1 - Mobile World - Business and Technology DriversNeeraj Kumar Singh
This is chapter 1 of ISTQB Specialist Mobile Application Tester certification. This presentation helps aspirants understand and prepare the content of the certification.
Key Steps & Best Practices to Custom Mobile App Development ProcessThinkers Media
We will be exploring a detailed guide on the mobile app development process from concept to deployment, including goals definition. Learn how to conduct market research, design user interfaces (UI) and user experience (UX), choose a technology stack, code, test, integrate analytics, ensure security and quality assurance. Explore the fundamental steps and important techniques that a mobile app should follow in order to create customized versions that successfully satisfy the end users’ preferences and needs. Go ahead and initiate a process of developing an app of high usability and practicality now.
Visit : https://www.thinkersmedia.in/mobile-app-development/ for more information.
Modalavalasa Surekha is seeking a challenging career in the software industry as a software tester. She has over 2 years of experience as a QA analyst and automation tester using tools like Selenium WebDriver, JUnit, and Python. She has expertise in manual and automated testing, developing test plans and cases, and tracking bugs. She has worked on projects for clients like TransUnion and SBSC testing web and mobile applications.
Location sharing and automatic message sender Android ApplicationKavita Sharma
This is the project report of Android Application(Location sharing and Automatic message sender). This report will help users who wants to develop any location based android application.
Syed Tahseen Arafath Ali is a software tester with over 11 months of experience working at Amazon Development Centre India Private Limited. He has experience testing Amazon Fire Phone, Amazon Maps, and Kindle applications on mobile devices. His responsibilities include writing test cases, executing tests, reporting bugs, performing regression and compatibility testing. He has a Bachelor's degree in Computer Science and is continuing to develop his skills in areas like Java programming and automation testing.
The document discusses factors to consider when choosing a mobile app development tool. It provides an overview of the mobile app development process and popular tools. Key factors include usability, budget, security/integration, and deployment considerations. The top tools expected in 2023 are React Native, Flutter, Xamarin, Ionic, and jQuery Mobile. Choosing the right development partner is important for standing out in crowded app markets.
The document is a curriculum vitae for Sayani Roy that provides details about her work experience, skills, education, and projects. It summarizes that she has over 4 years of experience in Java and Android development, has worked on projects for clients like VMware and Zynx Health, and is currently a Senior Engineer at Harman Connected Services with experience in technologies like Java, Android, SQLite, and Agile methodologies.
Varatharaj E is a software engineer with over 3 years of experience developing Android applications. He has expertise in Java, Android Studio, and SQLite. Some of his projects include developing tax filing applications for various IRS forms. He is looking for a challenging role where he can utilize his technical skills and contribute to an organization's growth.
70% of Candidates Use Mobile Devices to Search for Jobs… Will They Find Yours?Talemetry
View the webinar recording: http://talemetry.com/resources/webinars/70-of-candidates-use-mobile-devices-to-search-for-jobs-will-they-find-yours/
Job seekers are leading the way when it comes to mobile adoption; a recent survey showed 70% of all candidates, including 65% of those already employed, reported using their mobile devices to search for job opportunities, citing convenience and availability as their most common reasons. Employers have struggled to adopt and execute mobile recruiting strategies. Browser incompatibility with recruiting software, difficulty capturing applicant information, and poor candidate experience are just a few of their challenges.
With Talemetry, employers can turn the ATS they already have into a mobile recruiting platform that candidates can really use, making recruiters more effective and efficient to decrease time-to-fill and cost-per-hire.
In this webinar, you will learn how Talemetry can help:
- Create mobile-friendly career sites with consistent brand environment and user experience across devices
- Enable applicants to apply for jobs directly from their mobile devices using their LinkedIn profiles, increasing applicant flow and improving talent pipeline
- Reach more candidates faster in real time
- Provide a scalable platform that integrates with your enterprise applicant tracking system
website: www.talemetry.com
blog: www.talemetrytoday.com
Chapter 3 - Common Test Types and Test Process for Mobile ApplicationsNeeraj Kumar Singh
This is chapter 3 of ISTQB Specialist Mobile Application Tester certification. This presentation helps aspirants understand and prepare the content of the certification.
This document provides an overview of software assurance policies and procedures at ABC Company, a software development firm. It discusses the types of software produced, including desktop, web, and database applications. It analyzes security risks for each type of application and proposes techniques for software assurance. It also describes ABC Company's departmental organization and system design life cycle. The document discusses security considerations for agile development models like Scrum and policies to reduce threats. Potential security issues and mitigation strategies are presented for nontraditional development models. The document is intended to analyze the security of ABC Company's applications and ensure software is optimized.
Anu Singla is a quality engineer with over 3 years of experience in manual software testing. She has expertise in test case development, defect tracking, and black box testing. She is proficient in a variety of programming languages, tools, and platforms including C, SQL, Mantis, and Android and iOS mobile apps. Her work experience includes projects testing e-commerce, energy trading, and sports apps for clients in various industries.
Vinod Kumar Muthukrishnan is a software testing professional with over 14 years of experience, including 6 years in the USA. He has extensive experience testing applications in various domains including banking, retail, airlines, insurance, security, and mortgage lending. He is proficient with test management tools like Mercury Test Director and various programming and testing languages. He is looking for a challenging role that allows him to further develop his technical and analytical skills. His experience includes roles as a test lead on projects for JP Morgan Chase, Charles Schwab, Delta Airlines, Capital One Bank, and Best Buy.
This was a presentation that was given at Adobe MAX to help businesses and developers get their app discovered and further more optimized for the public to download, experience and rate.
- The document provides a summary of Sunil Kumar B's work experience and qualifications as an IT professional with over 8 years of experience in software testing. It details his testing experience on web, mobile, and field testing projects along with the tools and technologies used. It also lists his technical skills, work history with various clients and projects, and education background.
Vinod Kumar Muthukrishnan is a software testing professional with over 14 years of experience, including 6 years in the USA. He has extensive experience testing applications in various domains including banking, retail, airlines, insurance, security, and mortgage lending. He is proficient with test management tools like Mercury Test Director and various programming and testing languages. He is looking for a challenging role that allows him to further develop his technical and analytical skills. His experience includes roles as a test lead on projects for clients such as JP Morgan Chase, Charles Schwab, Delta Airlines, and Capital One Bank.
Mobile application development processTalentSmart1
Mobile app development is the process of creating software applications for cell phones and other portable devices. These software programs may come pre-installed on hardware or may need to be downloaded and installed by users. Creating software for mobile apps, integrating backend services like data access APIs, and testing the application on target devices are all part of the mobile application development services provided by app development companies.
We employ cutting-edge technologies to create a variety of web and mobile applications. Our experts leverage agile methodologies to provide world-class application development services that are scalable, resilient, and swift while also providing a great customer experience.
The two main mobile app development platforms are IOS from Apple and Android from Google. In contrast to Google Android, which is made available for mobile devices and businesses that meet the requirements for Android software applications, Apple uses its iOS application specifically for its own devices.
Talent Smart is a renowned app development company, offering application development services that aid in the creation of well-designed, user-friendly, and efficient apps in India and USA. At Talent Smart, we have a skilled team that is well-educated in building applications for multiple platforms and B2B organizations.
Similar to Software Engineering Large Practical coursework (20)
The document provides feedback on Part 1 of a computer science practical. It summarizes submissions for Part 1, including operating systems used. It addresses some common problems and uncertainties students had, such as compilation errors, unfamiliar aspects of Objective-C, and error messages. It also provides clarification on issues like imports, method implementations, and pointer conversions.
Feedback on Part 1 of the Software Engineering Large PracticalStephen Gilmore
This document summarizes feedback from the first part of a software engineering practical project. It discusses issues seen in student submissions, such as Java syntax errors, incomplete functionality, and problems with XML documents. It also provides examples of user interfaces and additional features students have implemented. The document encourages students to pay careful attention to instructions, use logging for development, and notes changes to the sample data file.
This document is from a computer science practical session on arrays in Objective-C. It discusses creating and initializing arrays, sorting arrays, handling memory management of arrays, and using mutable arrays. The document provides code examples for creating arrays, adding and retrieving elements, sorting arrays, and updating mutable arrays. It also discusses best practices for memory management when using arrays.
The document describes stochastic simulations of chemical reaction cascades. It discusses simulating a series of reactions (A to B, B to C, etc.) at different rates. A simulation script is provided, and sample output shows species A decreasing while B increases over the first second. The model is expanded to allow species E to decay via a new reaction. Visualizations show this does not affect A-D profiles but changes E's profile. Faster decay of E is also discussed.
Robotium is an Android testing framework that allows automation of Android app tests using JUnit. It launches the app on an emulator, programmatically enters values and clicks buttons, and reports which tests pass or fail. Automating tests in this way makes re-running tests after code changes simple and removes human intervention.
Common Java problems when developing with AndroidStephen Gilmore
For some, developing for the Android platform might provide their first experience of working with a complex, modern Java API. This may test your knowledge of the Java programming language, especially with regard to features such as generics. The Android APIs make use of generics throughout and so you will have to know how to create and handle generic classes.
This document is from a computer science practical session on Objective-C given by Stephen Gilmore on October 19, 2012. It contains several questions about whether sample code snippets would print "Yes", "No", or throw an exception, followed by the answers.
This document provides instructions for installing and using Xcode on Mac computers. It summarizes that there will be no computer science lecture the following week, and that Xcode is now available on library Macs. It then demonstrates how to install Xcode from the App Store, create a new project, write and run sample code, and use features like autocompletion, static analysis, and the debugger.
This document provides an overview of Objective-C concepts for a computer science practical session, including:
- Objective-C source files are divided into .h header files and .m implementation files.
- Classes are declared in header files with @interface and implemented in .m files with @implementation.
- Methods can be instance or class methods, distinguished by - and + prefixes.
- Properties expose fields and allow controlling access to values.
- Memory is managed through reference counting, which increments a counter when objects are created and decrements it when they are released.
This document provides an overview of debugging Android applications using Eclipse and Android Virtual Devices (AVDs). It discusses the Eclipse DDMS perspective for debugging, creating and using AVDs to emulate Android devices, and examining manifest files. It also covers string and image resources, and potential issues with the automatically generated R.java file.
The document discusses the stochastic simulation algorithm (SSA) for modeling chemical reactions. It explains that molecular reactions are inherently random processes. The SSA was developed by Gillespie to take into account this randomness by simulating reaction times and species populations. The algorithm works by choosing reaction times and events based on propensity functions derived from statistical thermodynamics. It provides an exact numerical simulation of a well-stirred chemically reacting system.
This document provides steps for getting started with Android development, including getting the Android SDK, creating an Android project, configuring and running an application on an emulator, debugging issues like NullPointerExceptions, and working with the Android user interface using XML layouts and drag and drop in the Eclipse editor. The document demonstrates core tasks for setting up an Android development environment and debugging a simple application.
The document describes a computer science practical assignment to create a command-line application in Objective-C that simulates chemical reactions stochastically. It explains that the simulation tracks the molecules of different chemical species and fires reactions according to reaction rates defined by the law of mass action. It provides an example simulation script specifying reaction constants, initial molecule counts, and reactions to simulate an enzyme-substrate system over time.
The document provides information about the Computer Science Large Practical (CSLP) and Software Engineering Large Practical (SELP) courses, including:
- The CSLP requires students to create a chemical reaction simulator in Objective-C, while the SELP requires developing an Android app to help students decide elections.
- Both courses run in the first semester and are assessed through coursework only.
- The courses aim to prepare students for later individual projects by providing larger programming projects with more design elements than previous courseworks.
This document discusses several Java programming topics including raw type parameters, working with the Java compiler, logging, and static analysis. It describes common Java problems like raw types and demonstrates how to address them. It also shows how to configure Java compiler preferences for tighter type checking and how logging and static analysis can help find bugs.
Feedback on Part 1 of the Individual PracticalStephen Gilmore
This document appears to be a presentation on common Java programming problems. It discusses topics like dead code, unused imports, overridden methods, emulator views comparing app functionality and design across different versions, and errors logged in the LogCat view. Each section includes screenshots related to the topic.
Creating and working with databases in AndroidStephen Gilmore
The document discusses code for a TODOs application that uses an SQLite database. It covers creating the database adapter and helper classes, writing methods to insert, update, and delete TODO items from the database, and retrieving data. It also discusses running the application and viewing TODO items, as well as the code for an activity to edit an individual TODO item.
The document discusses various aspects of developing Android applications in Eclipse, including manifest files, string and drawable resources, application attributes, and common Eclipse issues. It provides instructions and screenshots for editing the manifest, managing resources, updating strings, and dealing with problems like the R.java file not regenerating properly. Moving the project folder is presented as a solution to one such issue.
Project management for the individual practicalStephen Gilmore
The document discusses project management and outlines the roles of a developer and project manager. It emphasizes the importance of planning for the unexpected, predicting issues that could cause delays like weather or technical problems, and setting deadlines earlier to account for potential delays. Regular backups of work are also recommended in case of hardware or internet failures.
বাংলাদেশের অর্থনৈতিক সমীক্ষা ২০২৪ [Bangladesh Economic Review 2024 Bangla.pdf] কম্পিউটার , ট্যাব ও স্মার্ট ফোন ভার্সন সহ সম্পূর্ণ বাংলা ই-বুক বা pdf বই " সুচিপত্র ...বুকমার্ক মেনু 🔖 ও হাইপার লিংক মেনু 📝👆 যুক্ত ..
আমাদের সবার জন্য খুব খুব গুরুত্বপূর্ণ একটি বই ..বিসিএস, ব্যাংক, ইউনিভার্সিটি ভর্তি ও যে কোন প্রতিযোগিতা মূলক পরীক্ষার জন্য এর খুব ইম্পরট্যান্ট একটি বিষয় ...তাছাড়া বাংলাদেশের সাম্প্রতিক যে কোন ডাটা বা তথ্য এই বইতে পাবেন ...
তাই একজন নাগরিক হিসাবে এই তথ্য গুলো আপনার জানা প্রয়োজন ...।
বিসিএস ও ব্যাংক এর লিখিত পরীক্ষা ...+এছাড়া মাধ্যমিক ও উচ্চমাধ্যমিকের স্টুডেন্টদের জন্য অনেক কাজে আসবে ...
How to Manage Your Lost Opportunities in Odoo 17 CRMCeline George
Odoo 17 CRM allows us to track why we lose sales opportunities with "Lost Reasons." This helps analyze our sales process and identify areas for improvement. Here's how to configure lost reasons in Odoo 17 CRM
Macroeconomics- Movie Location
This will be used as part of your Personal Professional Portfolio once graded.
Objective:
Prepare a presentation or a paper using research, basic comparative analysis, data organization and application of economic information. You will make an informed assessment of an economic climate outside of the United States to accomplish an entertainment industry objective.
How to Build a Module in Odoo 17 Using the Scaffold MethodCeline George
Odoo provides an option for creating a module by using a single line command. By using this command the user can make a whole structure of a module. It is very easy for a beginner to make a module. There is no need to make each file manually. This slide will show how to create a module using the scaffold method.
Strategies for Effective Upskilling is a presentation by Chinwendu Peace in a Your Skill Boost Masterclass organisation by the Excellence Foundation for South Sudan on 08th and 09th June 2024 from 1 PM to 3 PM on each day.
This slide is special for master students (MIBS & MIFB) in UUM. Also useful for readers who are interested in the topic of contemporary Islamic banking.
Main Java[All of the Base Concepts}.docxadhitya5119
This is part 1 of my Java Learning Journey. This Contains Custom methods, classes, constructors, packages, multithreading , try- catch block, finally block and more.
Introduction to AI for Nonprofits with Tapp NetworkTechSoup
Dive into the world of AI! Experts Jon Hill and Tareq Monaur will guide you through AI's role in enhancing nonprofit websites and basic marketing strategies, making it easy to understand and apply.
Azure Interview Questions and Answers PDF By ScholarHat
Software Engineering Large Practical coursework
1. Software Engineering Large Practical
Stephen Gilmore
School of Informatics
Wednesday 26th September, 2012
Stephen Gilmore Software Engineering Large Practical
2. Summary
The requirement for the Software Engineering Large Practical
is to create an app implemented in Java and XML for the
Android phone.
The purpose of the app is to develop a prototype system to
help students to decide who they should vote for in student
elections.
Stephen Gilmore Software Engineering Large Practical
3. Outline
In a student election, candidates nominate themselves for an
office. For EUSA, these offices include President, Vice
President (Academic Affairs), Vice President (Societies and
Activities), Vice President (Services), and others.
Candidates reflect on the issues which are important to them
and make promises to the student body on what they will do
about these issues if elected to office.
Candidates can submit photographs of themselves and
election statements explaining what they want to achieve in
the hope of persuading people to vote for them.
The photograph and statement are made available on the
election website.
Stephen Gilmore Software Engineering Large Practical
4. Details
Photographs are made available in JPEG format with a
maximum size of 2Mb.
Images are at a resolution of 120 pixels wide by 150 pixels
high.
The number of words allowed in the election statement varies
by office but is never more than 450 words.
Stephen Gilmore Software Engineering Large Practical
5. Reducing environmental impact
The traditional method
of making and hanging
posters for election
candidates has been
criticised as being
environmentally
unfriendly, aesthetically
unpleasing, and
somewhat
old-fashioned.
Posters only give a
superficial impression of
a candidate’s priorities
because they only
contain a slogan,
meaning that voters
must look elsewhere for
more details.
Stephen Gilmore Software Engineering Large Practical
6. The idea: an app
In order to try to address these criticisms, the University of
Edinburgh is considering investing in an app for the Android phone
which will allow matriculated students of the university to:
read about candidates standing for election,
support the decision-making process,
cast votes, and – if they wish to –
share the news that they have voted.
Stephen Gilmore Software Engineering Large Practical
7. Information on candidates
The information on candidates is obtained by download of an
XML document.
This document specifies the candidates standing for election,
their policies and other relevant details.
The app should allow the user to browse this information and
present it in a clear, readable display.
Stephen Gilmore Software Engineering Large Practical
8. XML document
http://www.inf.ed.ac.uk/teaching/courses/selp/
elections/election.xml
Stephen Gilmore Software Engineering Large Practical
9. Interface mockup
Stephen Gilmore Software Engineering Large Practical
10. Rating candidates
In order to help with the decision-making process, users of the
student voting app should be able to rate election candidates
on a scale from zero to five stars and, if they are certain not
to vote for them, to delete candidates entirely.
The app should be stateful in the sense that ratings and
deletions are preserved between sessions with the app.
Stephen Gilmore Software Engineering Large Practical
11. Voting
When the user has decided who to vote for they can use the
app to send a private email to
informatics.android@gmail.com
with a carbon copy (CC) to
matricno @sms.ed.ac.uk
where matricno is the matriculation number of the student
who is voting.
This email should make clear who is being voted for, and for
which office. It is possible to vote more than once for an
office: later votes will override earlier ones.
Stephen Gilmore Software Engineering Large Practical
12. Social aspects
Once they have voted, users have the option to send a public
tweet to
@InformaticsAndr
announcing that they have voted (but not who they have
voted for).
This tweet should be labelled with the hashtag
#becounted
Stephen Gilmore Software Engineering Large Practical
13. Informatics Android Twitter account
https://twitter.com/InformaticsAndr
Stephen Gilmore Software Engineering Large Practical
14. Summary (1/2)
It should be possible for the user to specify their matriculation
number in the app.
It should be possible to download the XML database of
candidate information from the server into your app.
It should be possible to browse the candidate information and
read election promises and election statements.
It should be possible to rate candidates using a star rating
system.
It should be possible to delete candidates from the local copy
of the candidate database.
Stephen Gilmore Software Engineering Large Practical
15. Summary (2/2)
It should be possible to vote for candidates from the app.
This sends an email to informatics.android@gmail.com
A carbon copy is sent to the user at their SMS email address
It should be possible to send a tweet after voting.
A tweet is sent to @InformaticsAndr
This tweet should be labelled with the hashtag #becounted
Stephen Gilmore Software Engineering Large Practical
16. Extra credit
Additional credit will be awarded for additional useful features
which are not on the above list.
Thus, if you have time remaining before the submission
deadline and you have already met all the requirements listed
above then you can attract additional marks by being creative,
conceiving of new features which can helpfully be added to
the application, and implementing these.
If you have added additional features to your implementation
in order to attract extra credit then you should be sure to
document these features if they are not immediately evident
from normal use of your application.
Stephen Gilmore Software Engineering Large Practical
18. Early submission credit
In practical software development, timing and delivery of
completed applications and projects can be crucial in gaining
a commercial or strategic advantage over competitors.
Being the first to market means that your product has the
opportunity to become known and similar products which
come later may struggle to make the same impact, simply
because they became available second.
In order to motivate good project management, planning, and
efficient software development, the SELP reserves marks
above 90% for work which is submitted early (specifically, one
week before the deadline for Part 2).
To achieve a mark above 90%, a practical submission must be
excellent in all technical, functional, and aesthetic aspects
and in addition to this it must be submitted early.
Stephen Gilmore Software Engineering Large Practical
19. Assessment criteria (1/3)
This practical exercise will be assessed in terms of the completeness
of the solution to the problem, the quality of the Java and XML
code produced, and the ingenuity and craftsmanship which have
gone into designing a good and robust solution to the problem.
Stephen Gilmore Software Engineering Large Practical
20. Assessment criteria (2/3)
For example, all other things being equal, an app which allows
users to rate and delete election candidates should expect to
receive more marks than an app which does not allow this.
A more complete solution will get more marks.
All else being equal, an app which when loaded into Eclipse
reports static analysis errors (called “Java Problems” in
Eclipse and displayed in the Problems View) should expect to
attract fewer marks than one which does not.
Sloppy development style ignoring compiler warnings will lose
marks.
Stephen Gilmore Software Engineering Large Practical
21. Assessment criteria (3/3)
Additionally, all else being equal, an app whose code contains
examples of poor Java programming style (such as empty
catch statements) should expect to attract fewer marks than
an application in which Java exceptions are handled gracefully.
Poor programming style will lose marks.
Finally, all else being equal, an application which contains
logging statements (using the class android.util.Log and
generating calls to Log.d or other methods) would expect to
attract more marks than an equivalent application without
logging (because the version with logging is more
maintainable).
Including logging will gain marks.
Stephen Gilmore Software Engineering Large Practical
23. Marking (1/4)
1. The XML file specifying the information about the candidates
is updated to include a previously-unseen candidate to be
examined during testing.
Submissions which have hardcoded in the candidate
information will lose marks because they will not include the
information about the previously-unseen candidate.
2. The accompanying documentation is read for instructions on
how to use the app.
Submissions with insufficient documentation will lose marks
here.
3. The Eclipse project is imported into an instance of the Eclipse
platform and inspected for errors or warnings (“Java
Problems”)
Submissions with errors or static analysis warnings will lose
marks here.
Stephen Gilmore Software Engineering Large Practical
24. Marking (2/4)
4. The project is launched as an Android application and run on
the emulator
Submissions which fail to install or launch will lose marks here.
Requiring files to be pushed onto the emulator will lose marks
here.
5. The app is evaluated in user mode by browsing for content.
Submissions which have insufficient content will lose marks
here.
6. Evaluation continued by rating and deleting candidates.
Submissions which fail to rate or delete candidates will lose
marks here.
Producing “Application has unexpectedly quit” errors will lose
marks here.
Stephen Gilmore Software Engineering Large Practical
25. Marking (3/4)
7. Emulation is terminated and then restarted.
Submissions which fail to retain ratings or deletions will lose
marks here.
8. Other additional features of the application will be explored.
Voting for candidates will be tested here.
Tweeting will be tested here.
Submissions with useful additional features will gain marks
here.
9. Usability and aesthetics of the application will be explored.
Organisation and readability of the application will be
evaluated here.
Layout, colours, fonts and visual design will be evaluated here.
Stephen Gilmore Software Engineering Large Practical
26. Marking (4/4)
10. The Java source code will be inspected for good programming
style.
Submissions with insufficient logging will lose marks here.
Submissions with too few comments will lose marks here.
Submissions with blocks of commented-out code will lose
marks here.
Stephen Gilmore Software Engineering Large Practical
28. Managing a project
Managing a project involves a range of skills.
You need to:
identify roles and responsibilities;
carry out a range of tasks;
be aware of deadlines;
plan and anticipate problems; and
deliver a product.
Stephen Gilmore Software Engineering Large Practical
29. The Developer role
Studies the problem; determines a solution.
Installs software, APIs and frameworks.
Reads documentation; learns about tools.
Writes code; debugs code; tests code.
Writes documentation.
For the Software Engineering Large
Practical
You have been assigned this role.
Stephen Gilmore Software Engineering Large Practical
30. The Project Manager role
Identifies work which is to be done.
Sets parameters such as platform/architecture/language.
Sets priorities. Communicates priorities.
Doesn’t install software on your machine.
Doesn’t fix bugs in your code.
For the Software Engineering Large
Practical
I have been assigned this role.
Stephen Gilmore Software Engineering Large Practical
31. Plan for the unexpected
In planning a project you should build in some contingency to
deal with problems which could delay your progress.
You don’t know which problems will occur, but it would be
surprising if no problems occurred.
So, consider problems which could happen . . .
. . . the predictable unpredictables.
Stephen Gilmore Software Engineering Large Practical
32. Predictable unpredictables
You could catch flu — a flu epidemic is predicted this year.
Laptop theft — if your laptop was stolen you would lose work.
Laptop failure — failures can be irreparable with no warning.
Broadband failure — your broadband service could fail.
Strikes could happen — staff or students elect not to work.
It could snow — labs and facilities could be closed or
inaccessible.
Total cost due to predictable unpredictables
Events such as the above could delay you by a week.
Stephen Gilmore Software Engineering Large Practical
33. Managing deadlines
Most major projects have interim deadlines, milestones or
deliverables.
Missing interim deadlines, milestones or deliverables usually
incurs a penalty of some kind.
Stephen Gilmore Software Engineering Large Practical
34. Types of deadlines
There are different types of deadlines:
soft deadlines which are not usually specified precisely — “this
should be completed by Christmas”; and
hard deadlines which must be specified precisely — “Part 2 of
the Software Engineering Large Practical is due on Thursday
20th December, 2012 at 16:00”.
Stephen Gilmore Software Engineering Large Practical
35. Dealing with hard deadlines
Factor in the potential problems with predictable unpredictables by
taking the hard deadlines and subtracting the estimated delay (we
are considering this to be one week).
Part 1 is due on Thursday 25th October, 2012 at 16:00.
try to complete this by Thursday 18th October, 2012 at 16:00.
Early submission deadline for Part 2 is Thursday 13th
December, 2012 at 16:00.
try to complete this by Thursday 6th December, 2012 at 16:00.
Part 2 is due on Thursday 20th December, 2012 at 16:00.
try to complete this by Thursday 13th December, 2012 at
16:00.
Stephen Gilmore Software Engineering Large Practical
36. Backing up your work
Secure copy (scp)
You should backup your code to your DiCE account. It is possible
to copy an entire folder to your DiCE account with just one
command. If user is your username (e.g. s1234567)
scp -r ForumApp user @student.ssh.inf.ed.ac.uk:/home/user
will copy the folder ForumApp to your home directory.
Alternatives
Windows solution WinSCP
Cloud-based solution Dropbox — https://www.dropbox.com
Hardware solution Memory stick/CD
Caution
GitHub Free access is open source—anyone can copy your files
Stephen Gilmore Software Engineering Large Practical
37. Task management
Applications which allow you to compile lists and categorise
tasks can be useful when working on a large project.
Several applications allow you to set dates and deadlines on
tasks, set levels of importance and arrange lists to see tasks
which need to be done in the next few days.
These are now typically cloud-based solutions which let you
see the same information on the Web, on the desktop and on
mobile devices.
Stephen Gilmore Software Engineering Large Practical