往年考卷简单总结
requirement
mandatory 强制的 requirements 用 shall
desirable 可取的 requirements 用 should
功能性和非功能性要求,强制的和可取的要求
写五点:具体,可衡量,可实现,现实和有时间限制(SMART)
SMART: Specific, Measurable, Achievable, Realistic and Timely. This represents a set of test to determine whether a requirement has been clearly expressed.
SMART requirements are important as they are objective and can be translated into meaningful test schedules and can form the basis of determining whether a software system has met the needs of the customer
识别domain requirement
解释domain requirement
如何解决domain requirement
domain不够清晰,需要专家将其转换成 functional 或 non-functional
These requirements are not specific and cannot be directly translated into meaningful functional and non-functional requirements. Further expertise and domain knowledge is required to translate this domain requirement into more specific and measurable functional and non-functional requirements.”
risk
风险特征:
•Nature of risk:文字描述,例如可能会丢失对云存储系统中数据的访问权限。
•Chance of risk:定量或定性测量,例如停机时间少于总服务时间的0.1%,或低/中/高。
•Impact of risk:风险后果说明,例如 严重–无法开展任何业务
•Mitigation:我们可以采取什么措施来减轻风险的影响,例如切换到并行在线备份系统。
•Monitoring:我们采取什么步骤来监控风险的发生:例如自动监控系统,每周会议
Organisational risk: Risk arising from lack pf appropriate management structures, loss of key staff. Likely impact on delivery schedules and cost.
Technical risk: Risk arising from whether the project is technically achievable, possible instability in software tools and systems, reliance on third party technical delivery. Likely impact on whether project can be delivered at all.
Instability of requirements: Risk arising from lack of clarity of user requirements, or changes in requirements caused by poor customer commitment to the end goals. Impact depends on project lifecycle process. Can be terminal on Waterfall projects, will cause delay in Agile project
Waterfall
Waterfall
- Requirements are likely well understood and unlikely to evolve over the medium term. Customer likely has a very firm understanding of requirements and can develop meaningful and firm metricsto quantify performance.
- Creativity is not at a premium. Company has likely developed similar products before.
- Customer has fixed budget and a need to develop on time and on budget to meet needs of customer further down the business process chain.
Agile
- Requirements may not befirm. Customer may have requirements that are hard toquantify and attach meaningful metrics to. Customer may shift and evolve requirements as development proceeds and market conditions evolve.
- High degree of creativity and innovation may be required.
- Short development times may be required to deal with hardware evolution outside of the control of the customer and the development team.
- However, the customer likely has a fixed budget and a target time to market, so some effective controls must be in place.
- Frequent short term goals and early code development to get feedback from customer and possible sample end user groups.
Agile manifesto:
Individuals and interactions over processes and tools.
Working software over comprehensive documentation.
Customer collaboration over contract negotiation.
Responding to change over following a plan.
User stories:
An expression of user requirement(s) expressed as a scenario representing a short example of some aspect ofthe required functionality that the customer wants to achieve. Not expressed in terms offunctional and non-functional requirements, but instead in user centric story based terms.
Sprint:
A block of intensive development in response to a userstory/stories. Typically lasts around 2-4 weeks under the direction of a Scrum Master.
Pair wise programming:
An idea from the Extreme Programming (XP) approach where 2 programmers constantly review and improve each other’scode.
3 tier
Apache server running PHP,提供网页,并连接到数据库以提供用户要求的内容,并在下订单时根据需要更新数据库。在Linux操作系统上运行
MySQL database 保持存储在表中的数据以及用于维护数据库状态的存储过程
Presentation layer: collect and present data. Typically uses GUIcentredtechnology e.g. HTML and CSS for mobile interface.
Application layer: server centric, typically models the underlying business process.
Data tier: server centric, typically concerned solely with data management e.g. using SQL or some other structured persistent data storage
Typical 3 tier applications offer a single web server and single persistent data storage, and the queries are hard coded into the application logic code, thereby limiting their performance at the enterprise scale.
Key arguments for n-tier architecture(2017.1.D)
Model View Controller
Widely adopted architectural design pattern when there a software system has a non-trivial user interface element.Seeks to partition the software system into:
•Model: the underlying application or business logic.
•View: the part that renders the visual appearance of a model
•Controllers: the part that accepts user input and translates into actions for the model.
test
System level testing :testing the system as a whole, looking at system level inputs and outputs and testing whether the software as a whole is meeting the requirements set out for it. May involve the customer or end users.
a system level testing document (2018R.1.E)
Unit testing : involves testing individual elements of the software. Typically organized using unit testing software tools such as Unit. Intended for use by software developers as testing is concerned with inner workings of software components not necessarily visible to the end user.
In Java, automated unit testing can be achieved using JUnit test classes. Such classes provide a mechanism for annotating methods as test methods. Objects can be created and methods called and the expected results compared with the actual results to determine pass/fail conditions.
A system level testing document should include:
- Description of test•Statement of which requirement it is related to
- Inputs
- Expected output
- Actual output
- Determination of pass/fail
- If fail, action required to address shortcoming