zoukankan      html  css  js  c++  java
  • OO Summary (Homework 12-14)

    【Testing VS Programming Correctness Proof】

    Testing can help find and reveal errors in the program, which is an important means to ensure the reliability of software. However, testing can only prove that the program has errors but not prove the correctness of it. In this case, to ensure software reliability, testing is an imperfect technique.

    People naturally hope to develop a complete proof method of correctness. Once a practical correctness verification procedure, a technique that can automatically prove the correctness of programs, has been developed, the reliability of the software will be more assured and testing workload will be greatly reduced. However, software testing is still needed because the program correctness only proves that the program function is correct but not prove that the program's dynamic characteristics are in compliance with the requirements. In addition, the proof of correctness itself may also be mistaken.

     

    【OCL VS JSF】

    OCL(Object Constraint Language) is supplement of graph-based models, which helps declare and specify more details about the models and UML graphs.

     

    【UMLs】

    (1) Class 

     

    (2) Sequence

     (3) State Transition

    【Reflection】

    (1) Relationship between Modules

    We have learnt basic operation of Java,  multi-threading and thread safety design, standardized design with specification language, and engineering testing. These four modules offer knowledge from basic to complex, from shallow to deep. The more we learn, the more complicated problems we would solve; the more we learn, the closer we are to advanced programming and engineering skills.

    (2) Progress in Design, Test & Programming Quality

    DESIGN - The most obvious progress I find in myself is that when facing new demand, I code less than before due to a better structure of my program. I find my coding more readable and concise with shorter functions and better design.

    TEST - I have learned to use Junit for testing. I have developed my habit of reading codes to find others bug instead of depending on luck.

    QUALITY - I try to handle better with huge amount of data and take random errors into account. I also try to consider all possible input to react to every possible requirement.

    (3) Understanding of Software Engineering

    When handling with huge code quantity, programers need a more standardized programming pattern to cooperate with each other and complete a project that satisfies customer's request with high efficiency. That's why software engineering is born. 

    Software engineering is the process of applying systematic, orderly and quantifiable methods to the development, operation and maintenance of software. This kind of method enables software to be huge-scale with multiple functions, states, and systems as well as high performance. The main working process should be requirement analysis, design, structure building, testing, and maintenance.

    To realize software engineering, the whole procedure should be standardized, such as offering requirements document, test sheet, project report, employing coding specification, and attaining quality evaluation standard. Automation is also in need, such as automation between collaboration of programmers, automation development to reduce duplicate or redundant work, automative testing like Junit. 

    (4) Suggestion

    This is not a game. This is a serious course. All the rules and standard should be settled at the beginning, without any inappropriate changes or implicit requirements. 

    If possible, communication platform could be better. Students wouldn't be reminded by emails but rather like notifications in QQ or Wechat. In this case, students would be receive their messages immediately and communicate with each other in higher efficiency and convenience.

  • 相关阅读:
    Python内置函数 __import__ 动态加载模块
    Django_静态资源配置和ajax(九)
    GO语言学习(五)Go 语言基础语法
    GO语言学习(四)GO语言语言结构
    GO语言学习(三)GO语言学习API文档
    GO语言学习(二)Windows 平台下 LiteIDE 的安装和使用
    GO语言学习(一)Windows 平台下 Go 语言的安装和环境变量设置
    VS无法访问IIS元数据库 您没有足够的特权访问计算机上的IIS网站
    本地存储localStorage以及它的封装接口store.js的使用
    操作类封装
  • 原文地址:https://www.cnblogs.com/Becker-ZH/p/9222136.html
Copyright © 2011-2022 走看看